0

我在连接到我们 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。

我在想超时设置太小,但不确定是哪个控制这个,或者超时背后是否有其他原因。

其他人看到这个或可以解释为什么会发生这种情况?

4

1 回答 1

0

尴尬的是,我发现 ws.maxInterval 设置为 25 而不是 25000。这就是问题所在。

于 2013-11-13T14:07:51.133 回答