6

サーバーとしてJetty 7を使用して、アプリケーションでJetty Webソケットを使用しています。

私たちのアプリケーションでは、データは web Socket を介して 1 秒ごとに継続的に流れ、アプリケーションの設計に従って、Socket が 4 分間アイドル状態になると、Socket は切断されます。

現在、アプリケーションで Web ソケットの切断が発生しています。Web ソケットの切断理由を特定できません。これは、ソケットが 4 分間アイドル状態であるか、ネットワーク レベルで何かが発生したためです (つまり、ロード バランサー、ファイアウォール)。 --など)

すべての disconnect に対して、Jetty 内の理由コードは 1006 (chrome)

切断が発生した実際の理由を確認する方法を教えてください。

Web ソケットのトラフィックを監視する方法はありますか?

Chrome デバッガー ツールの [Websocket] タブを使用してトラフィックを監視しようとしましたが、一度切断すると、その時点で Websocket にどのようなデータが存在するのかわかりませんか?

このケースを処理する方法、つまりWebSocketを見つける理由を見つける方法についてのアイデアを共有してください。

4

2 に答える 2

5

1006 は異常終了です。「ハンドシェイク応答が不完全です」というメッセージが表示されることがあります。TCP Mon または Wireshark を使用して、ソケット トラフィックを監視し、送信されているヘッダーを調べることができます。

サーバーが接続で大きなデータを受信するように設定されていない場合にも、これを見てきました。「connection closed, status=1006, Reason=EOF」のようなメッセージが表示されます。Jetty は、サーバーが受信できるメッセージのサイズを制限します。このサイズより大きいメッセージを送信しようとすると、Jetty は接続を閉じます。Connection オブジェクトの setMaxBinaryMessageSize および setMaxTextMessageSize を使用して、接続のメッセージ サイズ制限を増やすことができます。http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/websocket/WebSocket.Connection.html

お役に立てれば。

于 2013-07-05T21:05:59.420 に答える