добавлять оценки пользователям в комнате socket.io - PullRequest
0 голосов
/ 28 мая 2020

Я хочу добавить оценки пользователям в определенной c комнате во время игры что-то, проблема в том, что у меня есть такой код:

 socket.on('join', ({ name, room }, callback) => {
    const { error, user } = addUser({ id: socket.id, name, room });

    if (error) return callback(error);

    socket.emit('message', { user: 'admin', text: `${user.name}, welcome to the room` });
    socket.broadcast
      .to(user.room)
      .emit('message', { user: 'admin', text: `${user.name}, has joined` });

    socket.join(user.room);

    io.to(user.room).emit('roomData', getUsersInRoom(user.room));
  });
,

поэтому с помощью функции "addUser" я добавляю пользователя в массив, который находится вне процессов сокета, а затем с помощью "getUsersInRoom", фильтрующий всех пользователей с указанным идентификатором комнаты. Я отправляю roomData клиенту, когда пользователь присоединяется или отключается. Теперь, когда пользователи играют, я хочу добавить свойство оценки для каждого пользователя: c room. Как мне это реализовать? Если я создаю новый массив пользователей с указанием c room, а затем добавляю свойство score каждому пользователю, а затем отправляю этот новый массив пользователей со свойством score после каждого игрового раунда, это не должно работать, потому что при появлении нового сокет присоединяется или выходит из него, он снова отправит пользователям старый массив пользователей без свойства «оценка». Я создаю такое приложение, как skribbl.io, поэтому лог c такой же.

Надеюсь, я ясно объяснил, я новичок в программировании, а также это мой первый пост в stackoverflow.

...