我有一个使用基于 jetty 8 的 websocket 服务器的应用程序。一切正常,当用户刷新页面、关闭页面或移动到另一个页面时,连接关闭,并且在服务器端 onClose事件被触发。
我刚搬到 9 号 jetty ,在 Firefox 中一切正常(刷新时连接关闭),但在 Chrome 或 Opera 上则不然。我什至关闭了浏览器,但没有触发 onClose 事件。
我知道 jetty 9 只支持最新的 websockets 协议(protocol)版本,我想知道当用户刷新页面时浏览器是否正在向服务器发送一些消息,以及如何在 jetty 上处理这个或者我是否必须在这个例子中用 javascript 处理这个:Closing WebSocket correctly (HTML5, Javascript)使用 window.onbeforeunload
?
如果我可以处理服务器端的所有工作,我会更喜欢。谢谢
更新 如果我使用 ws.close() 关闭来自客户端的连接,一切正常。
最佳答案
Jetty 9.0.0 中存在一些关闭和断开连接检测错误
这两个最近都已修复并在 Jetty 9.0.3.v20130506 中交付请试试那个版本。
关于java - jetty 9,websockets 和关闭服务器端的 websocket 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16227683/