Обмен сообщениями с Spring и внешними брокерами сообщений

Мой вариант использования рассматривает трех действующих лиц:

  • Производитель сообщений (например, Удаленный сервер);
  • брокер сообщений (например, RabbitMQ);
  • Потребитель сообщений (весеннее-веб-приложение на собственной AS).

Процесс общения выглядит следующим образом:

  1. Поставщик сообщений создает сообщение (путем указания получателя), а затем отправляет его Посреднику сообщений;
  2. Посредник сообщений передает сообщение получателю сообщений;
  3. Потребитель сообщений получает сообщение, а затем доставляет его определенному пользователю (сопоставляя получателя и имя пользователя) с помощью WebSocket< /сильный>.

Возможна ли реализация этого сценария?


person vdenotaris    schedule 02.09.2014    source источник


Ответы (1)


Да, этот сценарий определенно можно реализовать. Есть ли какая-то конкретная часть, которая вас беспокоит? Если вы не используете потребитель сообщений в своем сценарии для каких-либо других действий, вы можете фактически пропустить эту часть и получить сообщение непосредственно на стороне браузера.

Это потребует использования протокола STOMP, который большинство брокеров сообщений либо поддерживают из коробки, либо могут быть включены с помощью плагина (включая RabbitMQ, кстати). На стороне браузера вы можете использовать StompJS. Россен Стоянчев отлично рассказал об этом на SpringOne2GX в прошлом году - слайды здесь...

http://rstoyanchev.github.io/s2gx2013-websocket-browser-apps-with-spring/#1

Я надеюсь, что это полезно для вас.

person dectarin    schedule 02.09.2014
comment
Прежде всего, спасибо за ответ. Как новичок в Message Broker и WebSocket, я не понимаю, как правильно настроить получателя на шаге 1, а затем как я могу реализовать обработчик в Spring, чтобы отправлять сообщение только конкретному пользователю на шаге 3. - person vdenotaris; 02.09.2014
comment
это было рассмотрено в разных местах, но само руководство должно дать вам хорошее представление о том, с чего начать. framework-reference/htmlsingle/#websocket-stomp-handle-user" rel="nofollow noreferrer">docs.spring.io/spring/docs/4.0.2.RELEASE/ - person dectarin; 02.09.2014
comment
Вы также можете взглянуть на speakerdeck.com/salmar/deep-dive. -into-spring-websockets, чтобы больше узнать о потоке сообщений - person Sergi Almar; 10.09.2014