微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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申请.也许它会帮助你.

原文地址:https://www.jb51.cc/js/429757.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐