Използвам 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