有没有办法用Protobuf RPC从服务器到客户端进行调用调用(从客户端到服务器的自定义调用,而不是直接调用)? 我的意思是,例如,用回调参数描述* .proto文件中的服务方法? 我正在使用gRP
我的意思是,例如,用回调参数描述* .proto文件中的服务方法?
我正在使用gRPC库.
在gRPC中执行服务器 – >客户端消息的一般方法是通过“流式传输”.也就是说,客户端向服务器发出呼叫,然后服务器可以在最终完成呼叫之前将一系列消息“流”回客户端.见:http://www.grpc.io/docs/guides/concepts.html#server-streaming-rpc
当然,“流式传输”与传统的“回调”模式完全不同,但您通常可以解决相同的问题.
请注意,Cap’n Proto RPC – Protobuf和gRPC的替代方案 – 通过支持对象引用作为第一类类型完全支持双向调用:例如,客户端可以调用它提供的服务器的服务器用于回调的对象引用,然后服务器可以稍后在客户端上回调该对象.
(披露:我是Google的Protobuf v2的作者,也是Cap’n Proto的作者,但我不隶属于gRPC.)