我在服务器端使用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协议,可能会考虑到这一点.
原文地址:https://www.jb51.cc/js/429757.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。