Я новичок в соединениях в реальном времени, я пытаюсь понять производительность.Я использую бэкэнд node.js (используя фреймворк Sails.js).
У меня есть сценарий использования, в котором у меня есть два "контейнера".Один из них - «пользовательские» сообщения, а другой - «домашние» сообщения.
Пользовательские сообщения включают в себя: уведомления (для простоты давайте оставим это)
Домашние сообщения включают в себя: сообщения чата, этосообщения, набираемые пользователем (для простоты давайте на этом остановимся)
Два сокетных соединения - мои мысли
Преимущества:
- Одиночная широковещательная рассылка для идентификатора комнаты, являющегося userId для пользовательских сообщений
- Одиночная широковещательная рассылка на номер комнаты, являющейся homeId для домашних сообщений
Отрицательные значения:
Один разъемсоединения - мои мысли
Идентификатор комнаты - это идентификатор пользователя.
Преимущества:
- Подключение через одно гнездо
Отрицательные значения:
- Для домашних сообщений мне потребуется:
- Выполнить запрос к базе данных, чтобы найти все идентификаторы пользователя в доме
- Выполнить несколько широковещательных рассылок для каждого идентификатора пользователя (поскольку номер комнаты каждого соединенияидентификаторы пользователей)
В итоге
Мне, как программисту, удобнее писать для двух соединений.Но это больше нагрузки на сервер из-за двух одновременных подключений, я думаю.
Я хочу пойти с вышеизложенным, ЕСЛИ МЕНЬШЕ стоимость второго одновременного подключения ниже, чем стоимость производительности базы данных запросов И многократного вещанияна несколько номеров ".