我在java中有websocket,它每秒向javascript websocket客户端发送很少的消息(5 -10),然后使用角度ui-grid显示。
问题是20-30分钟后,浏览器(IE,Firefox,chrome)停止接收消息。
- 可能是什么问题?
- javax.websocket.Session 的默认会话超时值是多少?
- 我应该检查哪些设置/值,例如
getMaxTextMessageBufferSize()
等
/setMaxIdleTimeout() 是否是您要查找的内容。
来自 javax.websocket.Session 文档 set MaxIdleTimeout():
设置容器关闭此会话(如果处于非活动状态)之前的非零毫秒数,即不发送或接收任何消息。值为 0 或负表示会话永远不会因不活动而超时。
问题出在通信链路(有线连接)上。我通过重新连接到websocket.onclose上的websocket(客户端javascript代码)解决了这个问题。当 websocket 会话关闭时,将调用 onclose。我通过在 onclose 中调用 connect() 函数来重新连接。
这个答案也有很大帮助。AngularJS:在服务中重新连接 WebSocket