Я создаю услугу (доступную через Интернет и приложение), где пользователи принадлежат к команде. Всякий раз, когда пользователь делает что-то, все остальные пользователи онлайн (*) в своей команде должны быть уведомлены. Для этого я оцениваю RabbitMQ.RabbitMQ - как избежать получения собственных сообщений
(*) Обратите внимание: возможно, что один и тот же пользователь имеет несколько сеансов одновременно: он может одновременно регистрироваться в разных браузерах или, скорее всего, в браузере и приложении одновременно ,
Мой текущий подход заключается в создании тему обмена для каждой команды:
- Когда пользователь входит в систему, в Автоудален очереди создается и связанный с обменом его/ее команда.
- Когда пользователь сделал обновление, бэкэнд отправляет сообщение на обмен соответствующей командой.
- Наконец, все активные очереди, то есть все активные сеансы, получают сообщение об обновлении.
Это замечательно, потому что сообщение об обновлении должно быть отправлено только одним сервером. Однако проблема заключается в том, что инициатор также получает свое собственное обновление. Я бы хотел этого избежать. Это возможно? Или мне нужен другой дизайн?
Конечно, я всегда могу добавить идентификатор пользователя инициатора в полезной нагрузке сообщения об обновлении и фильтровать это поле при получении сообщения об обновлении, но сообщение все равно будет получено.
Умный подход! –