我正在使用 node.js 和 socket.io 构建一个网络聊天;当网络用户连接到聊天室时,我为他创建了一个房间,并且我想为房间设置变量,以便对其进行迭代,我可以获得每个用户的值。
有没有办法为房间设置变量,还是我需要使用“外部”工具,如数组或数据库?
一种更普通的方法是将变量简单地存储在io.sockets.adapter.rooms
它是一个包含当前房间列表的对象。
要将变量存储到房间,只需执行以下操作:
io.sockets.adapter.rooms['MY_AWESOME_ROOM'].myAwesomeVariable = 'state'
我为此目的创建了一个模块:https ://www.npmjs.org/package/roomdata
它创建了一个房间变量,它只是一个不包含任何内容的对象,当用户加入房间时,它会检查房间 [房间名称] 是否存在。如果它不存在,则将创建房间[房间名称],现在您可以对其应用变量。这个模块只是让它更容易做到这一点。