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客户端在react-native应用程序中不断断开和重新连接
socket.io javascript客户端在重新启动服务器后无法重新连接
Socket.io - nodejs 服务器端。重新连接后传输关闭