我正在使用Netty websockets,除了这个小问题外,一切似乎都运行良好:
如果我关闭js websocket客户端的浏览器/选项卡,则在使用Mozilla firefox(目前使用firefox 14)时,websocket连接会自动关闭,但Chrome 20/21中不会发生同样的情况。
任何人都看到类似的问题/任何人都可以告诉为什么连接没有自动关闭?
答案 0 :(得分:1)
这可能不对,但我无法对您的问题发表评论。如果你有一个应用程序正在运行,并且在设置 - >引擎盖下选择了“在关闭Chromium时继续运行后台应用程序”,Chrome / Chromium并没有真正关闭。
可能是它将websocket连接视为应用程序。尝试查看您的运行流程并杀死您找到的任何铬/铬工艺。
同样,这只是我的猜测。
答案 1 :(得分:0)
当用户关闭窗口或浏览器时,Chrome不会关闭连接。 它将触发Error事件。
可能的解决方法可能如下所示:
@OnError
public void onErr(Throwable t) {
onClose(this.container.getWsSession(), null);
}
但是每次都会关闭连接,触发错误。在你自己关闭连接之前,你可能不会检查throwable。
如需进一步讨论,请加入此问题:
Websocket: Closing browser triggers onError() in chrome but onClose() event in Firefox