Rooms in Socket.IO don't need to be created, one is created when a socket joins it. They are joined on the server side, so you would have to instruct the server using the client.
socket.on('create', function (room) {
socket.join(room);
});
In the example above, a room is created with a name specified in variable room
. You don't need to store this room object anywhere, because it's already part of the io
object. You can then treat the room like its own socket instance.
io.sockets.in(room).emit('event', data);
So to create a room from the client, this is what it might look like:
// 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);
});
});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…