Подтвердить что ты не робот

Создание комнат в 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 и sockets, но я уже читал их вики. Есть ли возможный способ создать комнату?

4b9b3361

Ответ 1

Номера в 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);
  });
});