Socket.io客户端重新连接无法正常工作

时间:2014-07-22 11:43:14

标签: node.js websocket socket.io connection

我正在使用Socket.io在我的Node.js服务器和客户端网站之间进行通信。一切都很棒!除了一件事。

我允许用户从Socket.io断开连接并稍后重新连接,或者至少我正在尝试。请记住,调用io()的套接字存储在mySocket中,使用mySocket.io.disconnect()进行断开连接可以正常工作。服务器捕获它,客户端知道它已断开连接,这很棒。问题是我以后尝试重新连接...

首先,我只是尝试再次设置mySocket=io(),但失败了。我了解到有一种重新连接方法,所以我尝试使用它,我的问题变得更糟。所以现在我正在使用mySocket.io.reconnect(),我得到了一些奇怪的结果,如下所述。

首先,服务器正在进行重新连接尝试。它正好赶上on('connection',...)事件。但是,CLIENT似乎认为它从未重新连接 - 例如,mySocket.connected的值保持在false并且所有emit()调用都失败(并且永远不会到达服务器)。

除了mySocket.io.reconnect()之外,是否还有一些我应该使用的特殊方法?或者我应该设置一些变量或参数?如果客户端认为它没有连接,为什么我的服务器会重新连接?发生了什么,我该如何解决?

1 个答案:

答案 0 :(得分:2)

在客户方:

mySocket = io('/', {forceNew: true})在类似的情况下帮助了我。