Socket.IO - 为每个客户端数量生成具有唯一名称/ ID

时间:2016-03-14 09:53:52

标签: sockets socket.io

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

1 个答案:

答案 0 :(得分:0)

在我的情况下,这是从一个数组中随机挑选的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数组 因此,您可能需要像socket.join(roomname)这样的roomname具有给定的字符串值,在您的情况下可以是连接的一些随机数或者socket.ids of {'1}}而不是' room' + i客户。