0

playframework で tcp フロー制御を自動的にパススルーするようにしようとしているので、バックアップされたクライアントは、サーバー上のリソースを使用せずに、サーバーを介してバックアップをダウンストリームに渡すだけです。ただし、これを行うには、WriteCallback が必要です。これにより、netty を使用してチャンクを書き込むときに、チャンクが実際に書き込まれたときに通知されます。書き込まれていない場合、コールバックは呼び出されず、メモリが少し消費されますが、書き込みが発生するまで、それ以上のリクエストは読み込まれません。

したがって、playframework では、これが Netty ChunkedWriteHandler で呼び出されていることがわかります。

chunkedWriteHandler.resumeTransfer();

本当に必要なのは、コールバックを渡して、書き込みがいつ終了したかを知ることです。これを簡単に達成するための他の方法や方法はありますか?おそらく、これは非常に複雑に見えますが、当分の間 netty を fork して、何らかの方法でコールバックを追加することができます。どんなアイデアでも大歓迎です。

ありがとう、ディーン

4

1 に答える 1

1

playframework はよくわかりませんが、netty では、write(..) を呼び出すと ChannelFuture が返されます。次に、ChannelFutureListener を ChannelFuture に追加して、書き込みが完了したら通知を受け取ることができます。

于 2012-12-13T10:32:17.417 に答える