2016-11-21 3 views
0

Socket.io предлагает первоклассную поддержку для решения конкретных получателей с помощью roomsВыделяют много сообщений против присоединиться много комнат

Я создаю веб-приложение, где сервер передает уведомления пользователя через сокет. Ио. Это рынок. Пользователи могут любить/покупать/продавать статьи и поэтому будут уведомлены с сервера, когда что-то изменится.

Теперь мне нужно сделать выбор, присоединяется ли пользователь к комнате для каждой интересующей его статьи при входе в систему или я получаю сообщение для каждого пользователя отдельно, когда что-то меняется.

Что является более эффективным? Есть ли наилучшая практика? Я беру эту проблему с неправильной точки зрения?

ответ

1

Номера являются лишь конструкцией на сервере для отслеживания списков сокетов. Когда вы транслируете в комнату, весь код socket.io выполняет цикл через список сокетов и отправляет сообщение по отдельности каждому из них.

Таким образом, в любом из ваших случаев сообщение отправляется отдельно для каждого сокета - то же самое для обоих. Используйте комнаты, если механизм отслеживания групп сокетов и возможность легко отправлять сообщение каждому из них полезен и работает для вашей цели.

Если у вас есть причина, по которой вы хотите использовать свои собственные структуры данных для отслеживания списков сокетов, то это тоже хорошо, и это не будет стоить больше, чтобы зациклиться на нем и отправить сообщение каждому из них так как у вас есть эффективная схема для поиска сокетов, к которым вы хотите отправить сообщение.

Смежные вопросы