68

よろしくお願いします。socket.io のクライアント側で苦労しています。クライアント側でこのコードを呼び出して、socket.io にルームを作成したいと思います。

var rooms = [];
socket.on('create', function (roomname) {
    rooms[room] = room;
    socket.room = roomname;
            socket.join(roomname);
    subscribe.subscribe(socket.room);
});

これが正しいかどうかはわかりません。そうでない場合は、この人たちを修正するのを手伝ってください。私はノード js とソケットのプロではありませんが、既に彼らの wiki を読んでいます。部屋を作る方法はありますか?

4

1 に答える 1

153

Socket.IO のルームを作成する必要はありません。ソケットが参加するときに作成されます。それらはサーバー側で結合されるため、クライアントを使用してサーバーに指示する必要があります。

socket.on('create', function (room) {
  socket.join(room);
});

上記の例では、 variable で指定された名前でルームが作成されますroom。このルーム オブジェクトは既にオブジェクトの一部であるため、どこにも保存する必要はありませんio。その後、ルームを独自のソケット インスタンスのように扱うことができます。

io.sockets.in(room).emit('event', data);

したがって、クライアントからルームを作成するには、次のようになります。

// client side code
var socket = io.connect();
socket.emit('create', 'room1');

// server side code
io.sockets.on('connection', function(socket) {
  socket.on('create', function(room) {
    socket.join(room);
  });
});
于 2013-10-03T03:29:54.107 に答える