Rabbitmq - websocket - consumer - отправлять сообщения только пользователю с указанным user_id - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть вопрос. Я работаю с Rabbitmq в течение некоторого времени, но я всегда использовал Rabbimq с опубликованными c доступными сообщениями через WebSocket (например, длинное обновление, которое длится около часа, веб-интерфейс получил соединение WebSocket с Rabbimq, и немногие потребители отправляют уведомления о прогрессе ( например, 5%, 10%, 15% - модуль A завершен, 20% и т. д. c). В этом примере сообщения, отправляемые через WebSocket (consumer => rabbimq => WebSocket в браузере), должны быть общедоступными (каждый должен см. их).

Но что, если я хочу, чтобы только указанный c WebSocket будет получать сообщения, отправленные потребителем? (например, только user_id = 99, потому что это личное сообщение / личное уведомление).

Как это сделать? Можно отправлять user_id указанные c сообщения от потребителя => rabbitmq => websocket (browser)?

Есть ли способ, например, во время JS Соединение инициализации Websocket отправляет user_id в Rabbitmq, а затем Rabbitmq будет отправлять только те сообщения, которые соответствуют данному user_id?

Например:

on-js-websocket-connect send { user_id: 99 }

on-consumer-message send { user_id: 99, message: "Hi, how are you?" }

И Rabbitmq отправит это сообщение только одному указанному c WebSocket (или многим WebSocket, если user_id совпадение - например, пользователь открыл много вкладок в браузере).

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