Компромисс производительности между одним соединением веб-сокета или двумя соединениями - одиночная широковещательная или множественная широковещательная рассылка - PullRequest
0 голосов
/ 03 марта 2019

Я новичок в соединениях в реальном времени, я пытаюсь понять производительность.Я использую бэкэнд node.js (используя фреймворк Sails.js).

У меня есть сценарий использования, в котором у меня есть два "контейнера".Один из них - «пользовательские» сообщения, а другой - «домашние» сообщения.

Пользовательские сообщения включают в себя: уведомления (для простоты давайте оставим это)

Домашние сообщения включают в себя: сообщения чата, этосообщения, набираемые пользователем (для простоты давайте на этом остановимся)

Два сокетных соединения - мои мысли

Преимущества:

  • Одиночная широковещательная рассылка для идентификатора комнаты, являющегося userId для пользовательских сообщений
  • Одиночная широковещательная рассылка на номер комнаты, являющейся homeId для домашних сообщений

Отрицательные значения:

  • Два разъема

Один разъемсоединения - мои мысли

Идентификатор комнаты - это идентификатор пользователя.

Преимущества:

  • Подключение через одно гнездо

Отрицательные значения:

  • Для домашних сообщений мне потребуется:
    1. Выполнить запрос к базе данных, чтобы найти все идентификаторы пользователя в доме
    2. Выполнить несколько широковещательных рассылок для каждого идентификатора пользователя (поскольку номер комнаты каждого соединенияидентификаторы пользователей)

В итоге

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

Я хочу пойти с вышеизложенным, ЕСЛИ МЕНЬШЕ стоимость второго одновременного подключения ниже, чем стоимость производительности базы данных запросов И многократного вещанияна несколько номеров ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...