我目前使用 nodejs ,特别是使用 Express 和 Socket.io 模块。
我的目标是在系统中拥有当前登录用户的数量。 (未通过套接字连接到它,但以我的系统用户身份登录)
我尝试通过创建会话变量来存储已连接用户的用户名(唯一值)。我的服务器中还有一个对象(名为connected_users
),该对象列出了已连接的用户及其客户端数量。
例如:connected_users: {userA:2, userB:1, userC:3}
我的想法是将connected_users
的 length 作为 counter :
如果客户端通过套接字 连接 :
-如果没有会话,则将添加 userA:1
添加到connected_users。
-否则,如果已在connected_users中使用:只需增加已连接用户中的userA
值。
如果客户端通过套接字 断开 :
-减已连接用户中userA
的值。
-如果该值为1,则表示这是该唯一用户的最后一个客户端,因此我删除键userA
。(意味着该用户不再处于活动状态)
问题是,如果唯一用户仅打开一个客户端,如果他重新加载页面,则密钥userA
将被删除最后一个客户。
您对我如何结束工作有任何想法吗? (或以其他方式执行)