Javascript Socket.io使用参数创建文件室

Javascript Socket.io使用参数创建文件室,javascript,node.js,sockets,redis,socket.io,Javascript,Node.js,Sockets,Redis,Socket.io,我正在开发多人扑克游戏,并将node.js和socket.io与redis适配器一起使用 我有一些房间的参数: name:string-服务器名称,用于大厅 password:string-服务器密码,用于私人游戏 游戏速度:布尔值-游戏速度(快速、正常、慢速) players:Array-玩家姓名,在这个房间里 amount:int-此房间中可连接的玩家数量 我在socket.io文档中找不到这样的功能。 有什么方法可以做到这一点吗?一个选择当然是创建一个对象,例如 var rooms = {

我正在开发多人扑克游戏,并将node.js和socket.io与redis适配器一起使用

我有一些房间的参数:

name:string
-服务器名称,用于大厅

password:string
-服务器密码,用于私人游戏

游戏速度:布尔值
-游戏速度(快速、正常、慢速)

players:Array
-玩家姓名,在这个房间里

amount:int
-此房间中可连接的玩家数量

我在socket.io文档中找不到这样的功能。
有什么方法可以做到这一点吗?

一个选择当然是创建一个对象,例如

var rooms = {
    room1: {
        name: 'room1',
        password: 'randomPassword'
        gameSpeed: true,
        players: [],
        amount: 8 // maybe rename to maxPlayers
    }
}
打开套接字后,如果需要,只需发送JSONified rooms对象(不要忘记去掉密码)。在将插座连接到所需房间之前,只需检查需要检查的内容(例如,if players.length 另外,在players数组中,您可能希望保存一个playerObject,除了player数据之外,它还保存对player套接字的引用。这样,当你知道你想在一个特定的房间里对一个播放器做些什么时,你就不必搜索整个套接字列表


最后,我发现在socket.io服务器上工作时(虽然那几乎是一年前的事),有一个对象引用了所有连接的socket,并用一些我可以轻松使用的唯一ID(例如,数据库中用户的uuid)索引。一个选项肯定是创建一个对象,例如

var rooms = {
    room1: {
        name: 'room1',
        password: 'randomPassword'
        gameSpeed: true,
        players: [],
        amount: 8 // maybe rename to maxPlayers
    }
}
打开套接字后,如果需要,只需发送JSONified rooms对象(不要忘记去掉密码)。在将插座连接到所需房间之前,只需检查需要检查的内容(例如,if players.length 另外,在players数组中,您可能希望保存一个playerObject,除了player数据之外,它还保存对player套接字的引用。这样,当你知道你想在一个特定的房间里对一个播放器做些什么时,你就不必搜索整个套接字列表

最后,当我在socket.io服务器上工作时(尽管那几乎是一年前的事),我发现有一个对象引用了所有连接的socket,该对象使用一些我可以轻松使用的唯一ID(例如,数据库中用户的uuid)进行索引