我需要测试到我的WebSocket服务器的连接是否建立。
此时,我可以连接到服务器,但我希望能够捕捉到该服务器无法访问的可能性,所以这个问题是关于当WebSocket连接无法建立或超时时该怎么办。
在Firefox中只使用基本的WebSocket代码,它将在大约20秒内超时并调用我的错误处理程序。但它也会抛出一个JavaScript错误(至少对我使用Firebug的人来说)。然后日志显示:
Firefox can't establish a connection to the server at ws://192.168.0.1/.
目前为止我尝试的方法是:
- 通过添加我自己的
window.timeout
来防止20秒超时,该window.timeout
检查onopen
处理程序是否已被调用,但这并不能防止JavaScript错误。 - 在我自己的超时结束时强制关闭WebSocket,但现在我得到了两个JavaScript错误-原来的加号:
The connection to ws://192.168.0.1/ was interrupted while the page was loading.
- 将
try {} catch(e) {}
添加到我的代码中,无论是在连接套接字时还是关闭它时-没有任何变化。
有什么办法可以让WebSocket错误不显示在浏览器中吗?
2条答案
按热度按时间gj3fmq9x1#
到目前为止我学到的是:你不能:0(
...因为这是浏览器特定的行为...
*或者只覆盖
console.log
;0)与代码我做了不过我摆脱了一些错误消息,也许它会有所帮助;)
例如:
** Package WS的基本类:看一下回调!**
看看Connect():onError(),onClose()函数
5lhxktic2#
试试这样的事情:
它每2秒尝试重新连接一次。
(我知道这个问题很老了,我在调试这个问题时发现了它,并认为其他人可能会从我的结论中受益。)