Cometd サーバーに接続する Websocket クライアントに問題があります。正常に接続されていることがわかり、ハンドシェイクも良好です。しかし、160 ミリ秒後、Cometd はセッションがタイムアウトしたと判断し、セッションを削除します。
05:45:45.597 [00003] INFO - canHandshake() result true
05:45:45.597 [00003] INFO - Websocket session-added : 86db64o1yu7v5elbwdkgg595e
05:45:45.597 [00003] INFO - Registering websocket session : session {id=86db64o1yu7v5elbwdkgg595e,cid=0,appId=GMCN01,rid=90C3301D-0295-633
05:45:45.598 [00003] INFO - Registering websocket session : 86db64o1yu7v5elbwdkgg595e for registrationId 90C3301D-0295-6336-351C-45C8884DD
05:45:45.598 [00003] INFO - storing session info for client 0 @ with host http://10.200.1.87:8081/websocket/transmit?sId=86db64o1yu7v5elbw
05:45:45.605 [00003] INFO - << {minimumVersion=1.0, supportedConnectionTypes=[websocket, callback-polling, long-polling], successful=true,
05:45:45.606 [00003] INFO - < {minimumVersion=1.0, supportedConnectionTypes=[websocket, callback-polling, long-polling], successful=true,
05:45:46.135 [00004] INFO - > {connectionType=websocket, channel=/meta/connect, clientId=86db64o1yu7v5elbwdkgg595e} 86db64o1yu7v5elbwdkgg
05:45:46.136 [00004] INFO - >> {connectionType=websocket, channel=/meta/connect, clientId=86db64o1yu7v5elbwdkgg595e}
05:45:46.136 [00004] INFO - << {successful=true, advice={interval=0, reconnect=retry, timeout=30000}, channel=/meta/connect}
05:45:46.136 [00004] INFO - < {successful=true, advice={interval=0, reconnect=retry, timeout=30000}, channel=/meta/connect}
05:45:46.296 [00007] INFO - Removing session 86db64o1yu7v5elbwdkgg595e - last connect 160 ms ago, timed out: true <--- THIS IS VERY ODD
05:45:46.296 [00007] INFO - Websocket session-removed : (t/o=true) 86db64o1yu7v5elbwdkgg595e
私自身のテスト クライアントは正常に動作しているように見えますが、おそらくサーバーに近く、遅延がそれほど大きくないためです。失敗しているクライアントは別の地域にあります。しかし、ログはレイテンシーを示していません。160 ミリ秒のタイムアウトは小さすぎるようです。
私はjetty 8.1.12に埋め込まれたJava Cometd 2.6.0を使用しています。
小さすぎるタイムアウトの設定があると思いますが、どれがこれを制御しているか、またはタイムアウトの背後に他の理由があるかどうかはわかりません。
他の誰かがこれを見た、またはなぜこれが起こっているのか説明できますか?