jetty 9,websockets 和关闭服务器端的 websocket 连接
Posted
技术标签:
【中文标题】jetty 9,websockets 和关闭服务器端的 websocket 连接【英文标题】:jetty 9, websockets and closing websocket connection on server side 【发布时间】:2013-04-20 02:39:51 【问题描述】:我有一个使用基于 jetty 8 的 websocket 服务器的应用程序。一切正常,当用户刷新页面、关闭页面或移动到另一个页面时,连接关闭,并且在服务器端 onClose事件被触发。
我刚搬到 9 号码头,在 Firefox 中一切正常(刷新时连接关闭),但在 chrome 或 opera 上却没有。我什至关闭了浏览器,并没有触发 onClose 事件。
我知道 jetty 9 只支持最新的 websockets 协议版本,我想知道例如当用户刷新页面时浏览器是否正在向服务器发送一些消息,以及如何在 jetty 上处理这个问题或者我必须这样做像在这个例子中一样在javascript中处理这个:Closing WebSocket correctly (html5, Javascript) using window.onbeforeunload
?
如果我能处理服务器端的所有工作,我会更喜欢。谢谢
更新 如果我使用 ws.close() 关闭来自客户端的连接,一切都会很好。
【问题讨论】:
有趣。您是否在服务器上收到“错误”事件? 在过去的 24 小时内已提交了一个错误。 bugs.eclipse.org/406449 @zhong.j.yu 没有。没有触发错误。 【参考方案1】:Jetty 9.0.0 中存在一些关闭和断开检测错误
406449 - 未检测到会话断开连接 404991 - WebSocketCloseTest 虚假失败这两个都是最近修复的,并在Jetty 9.0.3.v20130506 中交付,请试试那个版本。
【讨论】:
以上是关于jetty 9,websockets 和关闭服务器端的 websocket 连接的主要内容,如果未能解决你的问题,请参考以下文章
Jetty Websocket 服务器在本地工作,但远程连接失败并出现“主机已关闭”错误,如何解决?
让 Jetty Websocket 使用与 JavaScript Websocket 相同的语言
Jetty Websockets - 在处理不可靠的连接时正确发送异步消息