Jetty 9、WebSockets 和在服务器端关闭 WebSockets 连接

4
我有一个应用程序,它使用基于jetty 8的websocket服务器。一切都很顺利,当用户刷新页面、关闭页面或移动到另一页时,连接会关闭,并在服务器端触发onClose事件。
我刚刚升级到jetty 9,在Firefox中一切正常(刷新时连接被关闭),但在Chrome和Opera中不是。我甚至关闭了浏览器,但没有触发onClose事件。
我知道jetty 9只支持最新的WebSockets协议版本,我想知道当用户刷新页面时是否有浏览器向服务器发送某些消息,以及如何在jetty上处理这个问题,或者像这个例子一样在javascript中处理:Closing WebSocket correctly (HTML5, Javascript),使用window.onbeforeunload
如果可能,我更希望将所有工作都处理在服务器端。谢谢!
更新: 如果我从客户端使用ws.close()关闭连接,一切顺利。

有趣。你在服务器上收到“错误”事件了吗? - ZhongYu
1
在过去的24小时中,已经提交了一个与此相关的错误报告。 https://bugs.eclipse.org/406449 - Joakim Erdfelt
@zhong.j.yu 没有。没有触发任何错误。 - Doua Beri
1个回答

2

Jetty 9.0.0存在一些关闭和断开检测错误。

  • 406449 - 未检测到会话的断开
  • 404991 - WebSocketCloseTest 随机失败

这两个问题最近已经得到修复,并在Jetty 9.0.3.v20130506中发布,请尝试使用该版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接