Javascript 当客户端与网络断开连接时,在chrome-linux中不会触发websocket onclose

Javascript 当客户端与网络断开连接时,在chrome-linux中不会触发websocket onclose,javascript,websocket,Javascript,Websocket,我在服务器端使用java实现了websocket。在客户机中,我创建了websocket对象,并为所有事件(包括onClose)提供了自己的函数。我测试了重新连接。。。chrome 26中的websocket、Mozilla以及windows和chrome 当我拔出网线时,windows中的Chrome会触发onclose事件(即onclose使用closecode1006[异常关闭]触发,如中所述),但linux中的Chrome不会触发任何事件 请说明我犯了什么错误 我的确切问题是,为什么wi

我在服务器端使用java实现了websocket。在客户机中,我创建了websocket对象,并为所有事件(包括onClose)提供了自己的函数。我测试了重新连接。。。chrome 26中的websocket、Mozilla以及windows和chrome

当我拔出网线时,windows中的Chrome会触发onclose事件(即
onclose
使用closecode
1006[异常关闭]
触发,如中所述),但linux中的Chrome不会触发任何事件

请说明我犯了什么错误


我的确切问题是,为什么windows中的chrome会在网络断开时触发关闭,而在linux中则不会触发。这些应用程序可能没有注意到TCP连接中断。超时用于检测失败的TCP连接,我相信默认超时相当长

浏览器/操作系统应该注意到,一旦您尝试发送数据,连接就会消失。拔下网线后尝试发送一些数据,看看是否会触发事件

还有,你等信号多久了?可能连接只是有一个很长的TCP超时

如果仍然没有得到关闭的事件,则可能是由于实现中的错误。如果您确实需要知道连接何时中断,请使用自己的超时实现ping机制。我相信websocket协议定义了它自己的ping协议,也许可以研究一下


而且,对于chrome来说,似乎有一个这样的文件。可能会对您有所帮助。

您是否测试了服务器通过发送关闭包优雅地关闭连接时会发生什么情况?是的,如果服务器关闭连接,则客户端获得closeevent,其中closecode(由服务器发送)chrome、ff(linux中)和网线断开close dosen(关闭)不会自动触发是,如果readyState为1(连接已打开),我将向服务器发送一些数据以进行ping操作。服务器没有响应。但仍然打开了连接。。。。可能是websocket实现错误。不管怎样,谢谢你的帮助