Ich benutze Socket.io mit Node.js und ich möchte Benutzer paaren und an ein neues Zimmer senden.Verschieben Sie einen anderen Benutzer in ein Zimmer mit Socket.io
Wenn ein Benutzer verbindet, innerhalb io.on('connection')
ich bestimmt ihre Kompatibilität mit einem Benutzer warten auf Pairing in einem Array.
Wenn der angemeldete Benutzer mit einem wartenden Benutzer kompatibel ist, möchte ich beide in einen neuen Raum verschieben.
Dies ist mein derzeitiger Ansatz. Hinweis: [1029387,1983934,9243802]
ist ein Array von Benutzer-IDs.
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
});
Die einzige Idee, die ich habe, ist zu socket.emit('room', 'new room name');
vom Server zum Client, für die Warteschlange Spieler auf den Server mit dieser ID zurück zu senden und dann verwenden:
io.on('connection', function(socket) {
socket.on('room', function(room) {
socket.join(room);
});
});
jedoch dem Senden der Raumnamen zu der Client, um es dann zurück zum Server zu senden, scheint schrecklich weit hergeholt. Ich hoffe, es gibt einen einfacheren Weg.
Ihre Vorschläge werden dankbar angenommen.
Warum Raum an den Client vom Server senden? Bewegen Sie den Client einfach vom Server in diesen Raum. Keine Notwendigkeit, den Kunden zu bitten, Ihnen zu helfen, das zu tun. – jfriend00
Danke jfriend00, aber ich muss einen anderen Benutzer in einen anderen Raum (nicht den betreffenden Benutzer) verschieben. Hoffe das macht Sinn? – Joel
Es gibt keinen Grund, warum Sie das nicht sofort vom Server aus tun können - für jeden Benutzer, der gerade mit Ihrem Server verbunden ist. Welche Informationen verwenden Sie, um Ihre Nutzer zu identifizieren? – jfriend00