@nitrosp70

Как организовать доставку сообщений пользователю?

Я хочу реализовать доставку сообщений в реальном времени и отправить письмо на почту о новом сообщении. Для этого выбрал брокера доставки сообщений rabbitmq, websocket.
Схема примерно будет выглядеть:

Пользователь подключается к серверу на Nodejs через Websocket, проходит авторизацию если все в порядке добавляем пользователя в объект clients
Так же отдельно подключаемся к нашей очереди rabbitmq, где ожидаем новые уведомления, как только приходит новое сообщение находим пользователя по userId в clients и отправляем ему уведомление если сокет ещё не был закрыт

Все уведомления в очередь отправляется через php

Но есть вопросы:
1. Нужно ли создавать для каждого пользователя отдельную очередь или хватит две, одна для пользователя, а вторая для воркера отправки почты
2. При каждом новом подключении пользователя по websocket нужно ли так же подключиться к rabbitmq очереди ? Ну или хватит отдельного обработчика который будет искать в объекте clients пользователя и если найдет отправить ему сообщения ?

На бэке используется:
Php - PhpAmqpLib
Nodejs - Websocket, amqplib

Фронт:
Браузер - Websocket (wss)
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы