gpt4 book ai didi

javascript - Socket.IO:断开连接时的 XHR 轮询延迟

转载 作者:数据小太阳 更新时间:2023-10-29 04:44:54 25 4
gpt4 key购买 nike

我正在使用 socket.io 和 node.js。由于在套接字 IO 识别 XHR-Polling 客户端已断开连接之前有几秒钟的延迟,我在跟踪哪些用户在线时遇到了问题。

如果 XHR-Polling 客户端刷新页面,他们的新连接消息似乎先于他们的断开连接消息。这会在尝试跟踪哪些用户在线时造成混淆。

一种解决方案是在服务器端检测传输方法并延迟 XHR-Polling 客户端的连接,以确保首先运行断开连接功能。

有没有人有这方面的经验?

最佳答案

正如@davin 和@jcolebrand 在评论中指出的那样,存在的主要问题是不能仅依赖连接。用户离开页面后,网络设备可以保持连接。因此,您需要一些其他的东西来确认用户的存在。

这是我们在 Pusher 中添加的支持。我们使用一种叫做 Presence Channels 的东西来做到这一点.

我们使用唯一的用户 ID 来管理此操作,您(开发人员)必须在用户连接时提供该 ID,并结合用于标识连接的唯一套接字 ID。由于此唯一用户 ID 在存在成员列表中只能出现一次,这意味着该用户将仅列出一次 - 即使他们打开了多个连接,因此有多个套接字连接。

同样的想法可以应用于 HTTP 连接。

一般的方法是使用 session 来唯一标识用户。这样,即使他们只是“访客”,只要他们允许使用 cookie,您仍然可以识别他们。

因此,您系统上的用户数量最多只能达到您在服务器上运行的事件 session 数。

希望这对您有所帮助。如果您想澄清任何事情,请告诉我。

关于javascript - Socket.IO:断开连接时的 XHR 轮询延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6280569/

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