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。