Как я могу пройтись по комнатам в Socket.IO? - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь создать список кнопок, где каждая из них представляет доступную комнату. Поэтому, когда пользователь нажимает кнопку, он присоединяется к этой комнате.

Моя проблема в том, что я не могу найти способ получить доступ к этим данным, чтобы перебрать их. Когда я использую console.log(io.sockets.adapter.rooms), я получаю это:

{
  ZQ6iFbooGw3Dv3xgAAAA: Room { sockets: { ZQ6iFbooGw3Dv3xgAAAA: true }, length: 1 },
  Room1: Room {
    sockets: { ZQ6iFbooGw3Dv3xgAAAA: true, SWBqN3_5Z6ISy4BlAAAB: true },
    length: 2
  },
  SWBqN3_5Z6ISy4BlAAAB: Room { sockets: { SWBqN3_5Z6ISy4BlAAAB: true }, length: 1 }
}

В одной комнате три комнаты и два пользователя, которые называются "Комната1". Первая комната - «ZQ6iFbooGw3Dv3xgAAAA», то есть идентификатор по умолчанию. «Room1» является вторым и, наконец, «SWBqN3_5Z6ISy4BlAAAB». Только «Room1» содержит обоих клиентов, вы можете видеть длину 2. В двух других комнатах есть только их соответствующие пользователи. Эти комнаты создаются автоматически.

Что подводит меня ко второй проблеме. Даже если бы я мог найти способ итерации этих данных, как я могу разделить комнаты, созданные мной, и комнаты, которые создаются каждый раз, когда новый клиент подключается к серверу? Потому что они хранятся в одном месте. Есть еще один массив, который мне не хватает?

...