3

Apache Tomcat Websocket Implementationを試しています。問題は、最大 30 秒のアイドル時間の後に接続が常に閉じられることです。

接続を開いたままにするには、Tomcat を構成する必要がありますか? もしそうなら、どうすればそれを行うことができますか? HTTP プロトコルの server.xml の Connector 要素に connectionTimeout を設定しようとしました。それは何の効果もありませんでしたが、protocol 属性を websocket 固有のものに調整しなかったため、うまくいかないかどうかはわかりません (そのプロトコル宣言がどのように見えるかがわからないため)。

それとも、クライアント側の問題でしょうか。

助けてくれてありがとう、
レオ

編集:この問題は Tomcat 7.0.28 で解決されました (バグの説明、変更ログ)

4

5 に答える 5

4

私はなんとかWebSocketを無限に開くことができます。あなたがする必要があるのは、Apacheのをマイナス1()に設定することconnectionTimeoutだけserver.xmlですconnectionTimeout="-1"。それで私の問題は解決しました。:) ref:

于 2012-10-18T15:42:50.680 に答える
4

Tomcat にはWebSocketに関するいくつかの問題があり、そのうちの 1 つは 20 秒後に接続を閉じることです (これは server.xml の connectTimeout 値です)。この値を増やして問題を回避します。

-- ジャンフランソワ

于 2012-05-08T11:30:05.573 に答える
1

接続を開いたままにしておく必要がある場合は、クライアント/サーバーに ping を実行します。これは、接続の最後に何かがあることを確実に確認する唯一の方法です。

インターネットは信頼できるトランスポートではないため、コードが切断を処理できることを確認する価値があります。

于 2012-05-09T07:20:22.407 に答える
0

SERVER.XML で設定

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="999999"
           redirectPort="8443" />
于 2012-05-21T09:07:06.593 に答える