javascript – websocket onclose在chrome-linux中没有触发,当客户端与网络断开连接时

前端之家收集整理的这篇文章主要介绍了javascript – websocket onclose在chrome-linux中没有触发,当客户端与网络断开连接时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在服务器端使用java实现了websocket.在客户端我创建了websocket对象,我有自己的函数用于所有事件,包括onClose.我测试了重新连接…在chrome 26中使用websocket,Mozilla都是windows和chrome.

当我插入网络电缆时,Windows中的Chrome触发onclose事件(即关闭代码1006 [异常关闭]的关闭触发器,如https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent中所述)但Linux中的Chrome不会触发任何事件.

请提出我的错误.

我确切的问题是为什么当网络断开时,Windows中的chrome触发器会关闭,但是在linux的情况下,它不会被触发.

最佳答案
这些应用程序可能没有注意到TCP连接中断.超时用于检测失败的TCP连接,我相信默认超时很长.

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

还有,你等了多久信号?也许连接只有很长的TCP超时.

如果您仍然没有收到关闭事件,则可能是由于实施中的错误.如果您绝对需要知道连接何时发生故障,请使用您自己的超时实现ping机制.我相信websocket协议定义了自己的ping协议,可能会考虑到这一点.

此外,对于铬,似乎有一个issue申请.也许它会帮助你.

猜你在找的JavaScript相关文章