Socket.io 客户端在突然断开连接后无法重新连接到服务器

McL*_*vin 5 node.js ios socket.io swift

我正在使用 socket.io NodeJs 服务器库和 Swift 客户端库。大多数情况下,客户端在断开连接后成功重新连接到服务器,但偶尔我们会看到突然断开连接,然后客户端永远无法重新连接。

在服务器日志中,我看到客户端以定义的重试间隔发送连接尝试,但是它从未成功建立连接,然后我们得到一个ping timeout.

令人惊讶的是,对 Socket.io 的支持非常少,这使得这个问题极难解决。

McL*_*vin 2

我找到了解决问题的方法,即在重新连接时强制在客户端中创建一个新引擎。创建SocketIOClient对象时,设置允许客户端创建新引擎的forceNew变量,从而始终成功建立连接。true

return SocketIOClient(socketURL: socketURL, config: [.forceNew(true)])
Run Code Online (Sandbox Code Playgroud)