Socket.io客户端重新连接不起作用

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

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

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

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

除了简单的mySocket.io.reconnect()之外,是否还有一些特殊的方法可以使用? 或者我应该设置一些variables或参数? 为什么我的服务器捕捉重新连接,如果客户认为它没有连接? 怎么回事,我该如何解决?

在客户端sode:

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