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

Posted

技术标签:

【中文标题】Socket.io 客户端在突然断开连接后无法重新连接到服务器【英文标题】:Socket.io client fails to reconnect to server after an abrupt disconnection 【发布时间】:2017-11-05 16:40:46 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

return SocketIOClient(socketURL: socketURL, config: [.forceNew(true)])

【讨论】:

以上是关于Socket.io 客户端在突然断开连接后无法重新连接到服务器的主要内容,如果未能解决你的问题,请参考以下文章

Socket.io - 客户端断开连接后手动重新连接

Socket io客户端在react-native应用程序中不断断开和重新连接

socket.io javascript客户端在重新启动服务器后无法重新连接

Socket.io - nodejs 服务器端。重新连接后传输关闭

在 NestJS 中连接后,Socket.io 客户端正在断开连接

socket.io 服务器在注册客户端断开连接时非常延迟