0

http2-spec では、サーバーがストリームを半分閉じた (サーバーが http2.END_STREAM を送信した) シナリオでは、クライアントは引き続きデータを送信できます (半分閉じているため)。

次の gRPC シナリオを検討してください。

  • クライアントはサーバーへの双方向ストリームを開き、データの送信を開始します
  • サーバーは応答ストリームを閉じ、ステータス トレーラーを送信します (http2.END_STREAM の送信に変換されます)。
  • クライアントはデータを送信し続けます

セマンティクスは gRPC で明確に定義されていますか?

可能な方法:

  • http2-spec に従います。クライアントは、サーバーによって処理されるデータを送信し続けることができます。
  • http2-spec に従わない: サーバーがストリームを閉じると、クライアント接続は暗黙的に終了します。

注: テストしたところ、Java 用の gRPC はバリアント「http2-spec には従わない」に従っているように見えます。つまり、サーバーが下向きストリームを閉じると、上向きストリームも閉じられます。

4

1 に答える 1