4

クライアントを 2 つの部屋から新しい部屋に参加させたいです。これを達成する方法はありますか?お気に入り:

io.sockets.clients(room1 , room2).join(room 3);
4

2 に答える 2

4
var rooms = ['room1', 'room2', room3]; // list of rooms

socket.join('room1'); // assign the room on connection

var clients = io.sockets.clients(rooms[0]); // list of all clients in room1

for (client in clients)
    {
        clients[client].leave(rooms[0]); // leave room1
        clients[client].join(rooms[2]); // join room3
    }

room2 についても同じことを繰り返します。お役に立てれば

于 2012-06-01T06:11:57.507 に答える
1

socket.IO バージョン 1.0 以降を使用している場合、これは機能しない可能性があります。同じことを次のコードで試してください。

var clients = io.sockets.adapter.rooms['Current Room Name'];

for (var clientId in clients ) {

     //this is the socket of each client in the room.
     var clientSocket = io.sockets.connected[clientId];

     //If you want, you can remove the client form the first(current) room
     //clientSocket.leave('current room');

     clientSocket.join('new room to join');   

}
于 2014-07-30T04:55:50.657 に答える