向非Stomp / Websocket消费者发送消息

时间:2014-02-28 22:35:47

标签: spring websocket stomp

我已经将Stomp / Websocket支持添加到我的应用程序中,这使得从服务器端向Web客户端发送通知变得容易。但是,由于这需要服务器端消息代理,我想知道是否有可能使服务器端组件订阅从服务器发布的“主题”?

例如,我正在使用SimpMessagingTemplate向所有连接的Stomp客户端广播某些状态更新,但我是否也可以订阅服务器端的对象?

我现在的解决方案有点像黑客。服务器端不使用SimpMessagingTemplate,而是使用Project Reactor生成通知类型广播,其中我的一个使用者是使用SimpMessagingTemplate中继消息的桥接器。这允许我的Java组件以及我的Stomp客户端获得更新,但对我来说似乎有些过分。

1 个答案:

答案 0 :(得分:0)

您还可以在“brokerChannel”上注册ChannelInterceptor。这是SimplMessagingTemplate发送消息的通道。这将允许您检测从应用程序流向消息代理的所有消息。

对于许多情况,这可能就足够了,但是在更分散的环境中,可能有多个应用程序实例,在这种情况下,您只会检测来自一个应用程序实例的消息。在给定主题列表的情况下,我们可以考虑提供一些接收代理消息的机制。您只需配置主题列表并提供MessageHandler即可。如果可以请create a ticket in JIRA