【问题标题】:Socket.io events not firing once connected after previous failed attempt上一次尝试失败后,一旦连接,Socket.io 事件就不会触发
【发布时间】: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


    【解决方案1】:

    你可能知道原因。服务器没有重新连接。它实际上是连接的。当您告诉 socket.io 重新连接时,它会搜索以前的连接句柄,这就是问题出现的地方。

    【讨论】:

      猜你喜欢
      • 2016-01-09
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 2015-11-14
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多