GRPC Java服务器服务

时间:2018-05-16 09:37:44

标签: server rpc grpc-java

如何在调用任何操作服务时触发服务器端流服务  客户?现在,流媒体服务器只能在客户端调用响应时发送响应。

2 个答案:

答案 0 :(得分:0)

我认为这是不可能的。 gRPC是请求/响应类型协议。客户端必须调用相关的流式RPC以便服务器进行流式传输。

答案 1 :(得分:0)

我今天解决了这个问题。当用户订阅流时,将订阅请求和流观察器保存在数组列表/正常列表中。稍后调用任何操作服务时。创建Stream服务的新实例(扩展ServerStreamServiceGrpc.ServerStreamServiceImplBase)并使用数组列表中的参数从此新实例调用所需的流服务。您不需要使用用于创建服务器的相同服务实例。当用户取消订阅流时,只需从数组列表中删除该订阅。每当您从流服务发送任何数据时都不会调用onCompleted(),因为它将终止订阅。这里的流指的是服务器端流。