我有一个使用基于 jetty 8 的 websocket 服务器的应用程序。一切运行良好,当用户刷新页面、关闭页面或移动到另一个页面时,连接关闭,并且在服务器端触发 onClose 事件.
我刚搬到jetty 9,在firefox中一切正常(刷新时连接关闭),但在chrome或opera上却没有。我什至关闭了浏览器并且没有触发 onClose 事件。
我知道jetty 9只支持最新的websockets协议版本,我想知道例如当用户刷新页面时浏览器是否正在向服务器发送一些消息,以及如何在jetty上处理这个问题或者我必须在像这个例子中的javascript:正确关闭WebSocket(HTML5,Javascript)使用window.onbeforeunload
?
如果我能处理服务器端的所有工作,我会更喜欢。谢谢
更新 如果我使用 ws.close() 关闭来自客户端的连接,一切都会很好。