在Socket.io中创建房间

Joe*_*sis 43 javascript sockets node.js 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);
});
Run Code Online (Sandbox Code Playgroud)

我不知道这是否正确,如果没有请帮助我纠正这些家伙.我不是那个在节点js和套接字中专业但我已经读过他们的wiki了.有没有办法创造空间?

多谢你们.

hex*_*ide 95

不需要创建Socket.IO中的房间,当套接字加入时会创建一个房间.它们在服务器端加入,因此您必须使用客户端指示服务器.

socket.on('create', function (room) {
  socket.join(room);
});
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,创建了一个房间,其名称在变量中指定room.您不需要将此房间对象存储在任何位置,因为它已经是io对象的一部分.然后,您可以将房间视为自己的套接字实例.

io.sockets.in(room).emit('event', data);
Run Code Online (Sandbox Code Playgroud)

因此,要从客户端创建一个房间,它可能是这样的:

// 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);
  });
});
Run Code Online (Sandbox Code Playgroud)

  • @hexacyanide您说:`您不需要将此房间对象存储在任何地方`,重启服务器后如何恢复创建的房间? (4认同)