ご協力をお願いします。 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を読んでいます。部屋を作成する方法はありますか?
Socket.IO内のルームは作成する必要はありません。ソケットが参加するときに作成されます。これらはサーバー側で結合されるため、クライアントを使用してサーバーに指示する必要があります。
socket.on('create', function (room) {
socket.join(room);
});
上記の例では、変数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);
});
});