gpt4 book ai didi

javascript - 上次尝试失败后连接后 Socket.io 事件不会触发

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:13 24 4
gpt4 key购买 nike

下面是这样的场景,我有一个客户端应用程序,由 PHP 在与 Node.js + socket.io 应用程序不同的服务器上提供服务。它可以连接并接收服务器发送的广播。如果连接断开,应用程序将回退到轮询数据库(使用setInterval())。它每 5 次轮询尝试重新连接,并且可以成功重新连接并继续接收消息。

当用户加载页面并且无法访问 Node 服务器时(我将其关闭以进行测试),我的问题发生了,然后我打开服务器,并在第五次轮询时,它使用 socket.socket.reconnect(); 成功连接到服务器。但是,每当服务器广播消息时,它都不会触发该事件。请注意,在手机上测试时不会发生这种情况(手机会回退到不同的套接字方法)

我已经看到这里发现的问题 Reconnection in socket.io problem in `socket.on('message',function(){})` ,但是,套接字之前尚未连接,所以我认为这可能不是 session ?

编辑:我将 socket.socket.reconnect() 更改为 socket.socket.connect() 并解决了问题。如果有人可以解释其工作原理,我想知道。我知道它是因为服务器实际上并未重新连接,但想要更多信息。

谢谢。

最佳答案

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

关于javascript - 上次尝试失败后连接后 Socket.io 事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12528927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com