简介
gRPC 允许定义四类服务方法:
单项 RCP,即客户端发送一个请求给服务端,服务端返回一个应答,就像一次普通的函数调用。
rpc SayHello(HelloRequest) returns (HelloResponse) {}
服务端流式 RPC,即客户端发送一个请求给服务端,可获取一个数据流用来读取一系列消息。客户端从返回的数据流里一直读取直到没有更多消息为止。
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse) {}
客户端流式 RPC,即客户端用提供的一个数据流写入并发送一系列消息给服务端。一旦客户端完成消息写入,就等待服务端读取这些消息并返回应答。
rpc LotsOfGreetings(strem HelloRequest) returns (HelloResponse) {}
双向流式 RPC,两边都可以通过一个读写流来发送一系列消息。这两个数据流操作是相互独立的,所以客户端和服务端能按其需要的任意顺序读写。如:服务端可以在写应答前等待所有的客户端消息,或者它可以先读一个消息再写一个消息,或者是读写相结合的其他方式。每个数据流里消息的顺序都会保持。
rpc BidiHello(stream HelloRequest) returns (stream HelloRequest) {}
具体代码见:
https://github.com/anonymousGiga/net/tree/master/use_grpc