gpt4 book ai didi

node.js - 在 nodejs 中跟踪哪些用户在线的最佳方法是什么?

转载 作者:IT王子 更新时间:2023-10-29 06:03:29 27 4
gpt4 key购买 nike

所以我正在用 node.js 开发(更多地玩)一个实时游戏,我也在使用 Redis 和 Sockets.io。我让玩家创建一个大厅并加入它(有点像赛前聊天室,您可以在其中与玩家交谈并选择游戏设置)。客户端是用 HTML/CSS/JS 编写的,无论如何我希望能够知道玩家何时从大厅断开连接,以更新界面上加入的玩家数量(以及加入的玩家名称)。

我考虑过的两个选项是:

  1. 使用 redis 的键值超时功能,如果特定字段在 x 时间内未更新,则删除该字段。然后我会让主机检查此字段是否存在以检查 DC。我想知道这是否非常低效,因为很多用户可能会玩,所以在 redis 中有很多超时值以及许多其他用户轮询这些字段是否不好。

  2. 我可以使用 sockets.io on('disconnect', ..) 来更新字段。但是,我不确定如果例如用户电脑死机,此事件是否会触发?

无论如何,我也对任何其他想法持开放态度!

最佳答案

Socket.io 有一个“心跳”来检查连接是否仍然有效。默认心跳超时为 15s。您可以在 this wiki 中阅读有关配置它的更多信息.如果心跳失败(用户 pc 卡住),则 socket.io 将发出“断开连接”事件。

关于node.js - 在 nodejs 中跟踪哪些用户在线的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9610286/

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