我正在使用Socket。我的Node.js服务器和客户端网站之间的通信。一切都很好!除了一件事。
我允许用户从Socket断开连接。io并稍后重新连接,或者至少我正在尝试。请记住,调用io()的套接字存储在mySocket中,使用mySocket.io.disconnect()
断开连接可以正常工作。服务器捕捉到它,客户端知道它已断开连接,这很好。问题是当我稍后尝试重新连接时…
所以一开始我只是试图再次设置mySocket=io()
,但失败了。我知道有一种重新连接的方法,所以我试着用它,但我的问题变得更糟了。所以现在我使用mySocket.io.reconnect()
,我得到了一些奇怪的结果,如下所述。
首先,服务器正在尝试重新连接。它能很好地捕捉到on('connection',...)
事件。然而,客户端似乎认为它永远不会重新连接——例如,mySocket.connected
的值保持在false
,所有emit()
调用都失败(并且永远不会到达服务器)。
是否有一些特殊的方法,我应该使用除了简单的mySocket.io.reconnect()
?或者我应该设置的变量或参数?为什么我的服务器捕获重新连接,如果客户端认为它没有连接?发生了什么,我该怎么解决?
客户端:
mySocket = io('/', {forceNew: true})
在类似的情况下帮助了我。