gRPC servicer
Service definition
用service
keyword來定義一個新的gRPC service。
service RouteGuide {
...
}
RPC definition
用rpc
keyword來定義一個remote procedure call。
# simple RPC
rpc GetFeature(Point) returns (Feature) {}
# server-to-client streaming
rpc ListFeatures(Rectangle) returns (stream Feature) {}
# client-to-server streaming
rpc RecordRoute(stream Point) returns (RouteSummary) {}
# bidirectional streaming
rpc RouteChat(stream RouteNote) returns (stream RouteNote) {}
RPC type
simple RPC
: client丟一個message給server,server回一個message給client。client-to-server streaming
:client會丟複數個message給server直到EOF,然後等待server回傳一個message。server-to-client streaming
: client送一個message給server,server會回傳複數個message給client。bidrectional streaming
: 雙方都預期會收到複數個message,直到收到EOF。