Protobuf RPC 回调

Protobuf RPC callbacks

有没有什么方法可以使用 Protobuf RPC 从服务器到客户端进行调用(而从客户端到服务器的自定义调用,而不是直接调用)?

我的意思是,例如,用回调参数在 *.proto 文件中描述服务方法?

我正在使用 gRPC 库。

在 gRPC 中执行服务器-> 客户端消息的一般方法是通过 "streaming"。也就是说,客户端向服务器发出调用,然后服务器可以 "stream" 在最终完成调用之前向客户端返回一系列消息。

参见:http://www.grpc.io/docs/guides/concepts.html#server-streaming-rpc

当然,"streaming" 与传统的 "callback" 模式完全不同,但您通常可以用它解决相同的问题。

请注意,Cap'n Proto RPC——Protobuf 和 gRPC 的替代方案——完全支持双向调用,因为支持对象引用作为第一个 class 类型:客户端可以,例如,调用服务器,在其中提供用于回调的对象引用,然后服务器稍后可以调用客户端上的该对象。

(披露:我是 Google 的 Protobuf v2 的作者,也是 Cap'n Proto 的作者,但我不隶属于 gRPC。)