Socket.IO - 对于每个数量的客户端,生成具有唯一名称/ID 的新房间



我正在尝试建立一个基于 Socket.IO 的匹配系统。我已经设置了服务器,数据正常存储在数组中。现在我想知道这个:
• 当 10 名玩家加入主房间("队列")时,默认情况下处于连接状态,我如何创建一个具有唯一 ID 的新房间(即 lobby_982311298_3427834)并将这些人放入该房间。
• 对于接下来的 10 名玩家,生成一个新的唯一 ID 并将他们放入新房间。
谢谢。

在我的情况下,这是从数组中随机挑选的 2 个人,我用这样的事情做到了:

function newRoom(user1, user2){
  users.forEach(function(user){
    if(user.name == user1 || user.name == user2){
        io.sockets.connected[user.id].join('room'+i);
    }
});
  rooms.push(io.nsps['/'].adapter.rooms['room'+i]);
  i++;
}

其中user1user2是具有名称和 id(即 socket.id)属性的对象。 forEach 检查存储用户的整个users数组。
因此,您可能想要的不是"room"+i,而是roomname具有给定字符串值的socket.join(roomname),在您的情况下可以是一些随机数串联或客户端的socket.ids。

最新更新