@nitrosp70

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
25 апр. 2024, в 19:42
49000 руб./за проект
25 апр. 2024, в 19:41
2000 руб./за проект
25 апр. 2024, в 19:22
18000 руб./за проект