Socket.io 连接到 Java Netty 服务器。如果 socket.io 在服务器关闭时尝试连接服务器,则会出现 404。所以Javascript控制台说:
http://mylocalhost.com/socket.io/1/?t=1354790544338 - Failed to load resource
在此之后,socket.io 连接完全断开。由于 404,它不会尝试再次连接...
我该如何处理?我尝试设置一个间隔,尝试每五秒连接一次,使服务器联机,但由于该错误,它不会尝试连接。
页面重新加载后,它可以正常工作。socket.io 中有没有办法观察服务器何时再次在线然后连接到它?什么可能是适当的解决方案?
我已确保正确加载了 socket.io.js 客户端 javscript,并且我对正在发生的事情的理解是这样的:
- socket.io 开始握手,socket.socket.connecting 设置为 true
- 对http://mylocalhost.com/socket.io/1/?t=1354790544338的请求会导致 404,因为服务器已关闭
- 这是一个错误,但 socket.socket.connecting 保持为真,这会导致下一次重新连接尝试失败,因为如果它认为它已经在尝试重新连接,它将不会尝试重新连接
我在disconnect()
尝试重新连接之前尝试过调用,它将重新连接设置为 false,但是当没有连接的套接字并且我调用disconnect()
时,它会抛出"Cannot call method 'close' of undefined"
.
什么可能是一个正确的解决方案,让重新连接为假,有点“重置”socket.io 为下一次连接尝试做好准备?