udemy gRPC: Bi Directional Streaming API
HTTP/2 で可能になった新しい種類のAPI
Server も Client も、複数のメッセージを送り合う。
Server が送るメッセージの数と、Client の送る数は同じでなくてもいい
Server -> 5, Client -> 2 とかでもいい
双方向通信
向いてる用途
サーバーとクライアントが、多数のメッセージを非同期的に送り合う
Chat protocol
Long running connection
長い間コネクションを保つ必要がある通信
どう作る?
Service内の rpc定義で、引数にも戻り値にも streamをつければいいだけ
streamが2回出てくるということ
やり方は、Server Side Streaming と Client Side Streaming を合わせるだけ。
Rust の場合、Stream を相手に渡して、
Server or Client からsend, どちらかが 終了したらお互いに終了するようにすればいい。
ちなみに、Bi Direction を BiDi(バイダイ)と略すらしい