0

重複の可能性:
サーバーからクライアントソケットの確認を取得する方法は?

接続を長時間開いたままにするnettyを使用して、コメットメッセージサーバーを実装しました。正常に動作しますが、次のことを検出できません。

誰かがケーブルを切断したなど、クライアント接続が「予期せず」閉じられることがあります。これが発生した後でも、エラーが発生したり、何か問題があることを検出したりすることなく、そのチャネル (サーバー側) に書き込むことができます。

では、netty サーバーからクライアントに送信したデータが実際に受信されたかどうかを検出するにはどうすればよいでしょうか?

「古い」java.ioでは、これは(私の知る限り)ソケットレベルで行われます。(キープアライブなしで) 接続が切断されたかどうかはわかりませんが、OutputStream にデータを書き込もうとした瞬間に接続が切断された場合は失敗します。しかし、netty を使用すると、これはもう発生せず、どうにかしてその情報を取得できるかどうか疑問に思います (情報 = 基になる接続がその間に切断され、データを配信できませんでした)

基本的に: ACK が受信されなかったため、基礎となる TCP がタイムアウトになりました。これは java.nio / Netty でどのように表示されますか? 現在、切断された接続への書き込みを続行できます。

4

0 に答える 0