gpt4 book ai didi

javascript - 维护在线用户数 Socket.io NodeJS

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

我正在尝试跟踪登录到我的 socket.io/nodejs 应用程序的所有用户。

当有人登录时,我只需执行以下操作:

sessionobj[result[0].username] = sessionId;

如果有人在多个选项卡中打开站点,这也可以正常工作,因为他们仍然具有相同的用户名,并且只会添加到 sessionobj 中一次。

当有人关闭其中一个选项卡时就会出现此问题。理想情况下,我希望用户在没有打开选项卡时“注销”,但是,我不确定如何实现这一点。例如,如果用户打开了 2 个选项卡,我添加以下行:

delete sessionobj[socket.handshake.session.username];

对于 socket.on('disconnect' 事件,当用户关闭其中一个选项卡时,即使另一个选项卡仍然打开,用户也会被删除。有什么方法可以准确地跟踪这一点吗?

最佳答案

只需将有关当前选项卡数量的信息存储在某处,例如在本地存储中。每当打开一个选项卡时,您就添加一个,当关闭一个选项卡时,您就从该数字中减去一。因此,您知道打开了多少个窗口,并且当您的应用程序有更多选项卡时,可以简单地不调用断开连接事件。

关于javascript - 维护在线用户数 Socket.io NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50930516/

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