在Socket.io中创建房间

时间:2013-10-03 03:25:14

标签: javascript node.js sockets socket.io

我想请求你的帮助。我在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了。有没有办法创造空间?

谢谢你们。

1 个答案:

答案 0 :(得分:85)

不需要创建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);
  });
});