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