Bidirectional streaming RPC
双方向ストリーミングRPCでは、クライアントのメソッド呼び出しと、サーバーのクライアントmetadata、メソッド名、deadline の受け取りによっては呼び出しが開始される サーバーは初期metadata を返送するか、リクエストの送信を開始するクライアントを待つか選択できる アプリケーションによって次に何が起こるかが決まる
ストリームは完全に独立して操作を行うため、クライアントとサーバーは任意の順序で読み書きできる。
例えば、サーバーはレスポンスを作る前にクライアントのメッセージを全て受け取るまで待てるし、サーバーとクライアントは、サーバーがリクエストを取得してレスポンスを返し、クライアントはサーバーからのレスポンスに基づいて別のリクエストを送信するという、ping-pongもできる