2014-09-02 87 views
2

我的使用情况考虑三个角色:消息与Spring和外部消息代理

  • 一个消息生成(例如,一个远程后端); (例如,RabbitMQ);或者,
  • 一个消息消费者(一 - 基于Web的应用程序上是自己AS)。

的通信过程如下:

  1. 消息生成创建消息(通过指定收件人),然后将其发送到消息代理;
  2. The Message Broker将消息中继到消息使用者;
  3. 消息消费者接收该消息,然后通过使用的WebSocket它传送给一个特定的用户(通过映射收件人用户名)。

是否可以实现这种情况?

回答

2

是的这种情况绝对可以实现。有什么特别的部分让你感到困扰?如果你没有在你的场景中使用消息消费者来做其他任何事情,那么你可以将这部分消除,并且直接在浏览器端消费这些消息。

这将涉及使用STOMP协议,大多数消息代理可以支持开箱即用或可以使用插件(包括RabbitMQ btw)启用。在浏览器端,你可以使用StompJS。罗森Stoyanchev去年给上这个伟大的谈话在SpringOne2GX - 幻灯片在这里......

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

我希望这是对你有用。

+0

首先,谢谢你的回答。作为Message Broker和WebSocket的新手,我不明白在步骤1中如何正确设置收件人,那么我如何在Spring中实现处理程序,以便在步骤3期间仅向特定用户发送消息。 – vdenotaris 2014-09-02 15:02:48

+0

this已被覆盖在各个地方,但手册本身应该让你对从哪里开始有很好的了解。http://docs.spring.io/spring/docs/4.0.2.RELEASE/spring-framework-reference/htmlsingle/ #websocket-stomp-handle-user – dectarin 2014-09-02 15:05:01

+0

您可能还想看看https://speakerdeck.com/salmar/deep-dive-into-spring-websockets以了解有关消息流的更多信息 – 2014-09-10 16:11:35