在 Socket.io 中创建房间

Creating Rooms in Socket.io

本文关键字:创建 房间 io Socket      更新时间:2023-09-26

我想请你帮忙。我在 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);
  });
});