Я использую Socket.io с Node.js, и я хотел бы объединить пользователей и отправить их в новую комнату.
Когда пользователь подключается, в io.on('connection')
я определяю его совместимость с пользователем, ожидающим объединения в массив.
Если присоединившийся пользователь совместим с ожидающим пользователем, я хочу переместить их обоих в новую комнату.
Это мой текущий подход. Примечание. [1029387,1983934,9243802]
— это массив идентификаторов пользователей.
var pendingPlayers = {
"spelling": {
"level1":[1029387,1983934,9243802],
"level2":[]
}
}
io.on('connection', function(socket) {
// check compatibility
// move current player and other queued player to new room
});
Единственная идея, которая у меня есть, это socket.emit('room', 'new room name');
от сервера к клиенту, чтобы игрок в очереди отправил этот идентификатор обратно на сервер, а затем использовал:
io.on('connection', function(socket) {
socket.on('room', function(room) {
socket.join(room);
});
});
Однако отправка имени комнаты клиенту, чтобы затем отправить его обратно на сервер, кажется ужасно надуманной. Я надеюсь, что есть более простой способ.
Ваши предложения с благодарностью принимаются.
socket.join('room');
заставит текущего пользователя присоединиться к комнате, но этот вопрос относится к перемещению другого пользователя. Я могу выложить весь код на Pastebin, если все еще неясно. Я ценю помощь! :-) - person 728883902   schedule 10.09.2017