这是场景,我有一个客户端应用程序,由 PHP 在与 node.js + socket.io 应用程序不同的服务器上提供服务。它可以连接和接收服务器发送的广播。如果连接断开,应用程序将退回到轮询数据库(使用setInterval()
)。它尝试每 5 次轮询重新连接,并且可以成功重新连接并继续接收消息。
当用户加载页面并且无法访问节点服务器时出现我的问题(我将其关闭以进行测试),然后我打开服务器并在第 5 次轮询时,它成功连接到服务器,使用socket.socket.reconnect();
. 但是,无论何时服务器广播消息,它都不会触发该事件。请注意,在手机上进行测试时不会发生这种情况(回退到不同的套接字方法)
我已经在 `socket.on('message',function(){})` 中看到了这里发现的问题 Reconnection in socket.io 问题,但是,套接字以前没有连接过,所以我认为它不可能会议?
编辑:我将其更改socket.socket.reconnect()
为socket.socket.connect()
并解决了问题。如果有人可以解释为什么这样做我想知道的原因。我知道它是因为服务器实际上并没有重新连接,但想要更多信息。
谢谢。