我正在尝试建立一个基于Socket.IO的配对系统。我已经设置了服务器,数据正常存储到数组中。现在我想知道这个:
•当10个玩家加入主房间('队列')时,默认情况下连接时,如何创建一个具有唯一ID的新房间(即lobby_982311298_3427834)并将这些人放入该房间。
•对于接下来的10个玩家,生成一个新的唯一ID并将它们放入新的房间
感谢。
答案 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++;
}
其中user1
和user2
是具有名称和id(即socket.id)属性的对象。 forEach检查存储用户的整个users
数组
因此,您可能需要像socket.join(roomname)
这样的roomname
具有给定的字符串值,在您的情况下可以是连接的一些随机数或者socket.ids of {'1}}而不是' room' + i客户。