向非 Stomp/Websocket 消费者发送消息
Posted
技术标签:
【中文标题】向非 Stomp/Websocket 消费者发送消息【英文标题】:Sending messages to non-Stomp/Websocket consumers 【发布时间】:2014-02-28 22:35:46 【问题描述】:我在我的应用程序中添加了 Stomp/Websocket 支持,这使得从服务器端向 Web 客户端发送通知变得容易。但是,由于这需要服务器端消息代理,我想知道是否可以让服务器端组件订阅从服务器发布的“主题”?
例如,我正在使用 SimpMessagingTemplate 向所有连接的 Stomp 客户端广播某些状态更新,但我也可以在服务器端订阅一个对象吗?
我现在的解决方案有点小题大做。服务器端不使用 SimpMessagingTemplate,而是使用 Project Reactor 生成通知类型广播,其中我的一个消费者是使用 SimpMessagingTemplate 中继消息的桥梁。这允许我的 Java 组件以及我的 Stomp 客户端获取更新,但对我来说这似乎有点矫枉过正。
【问题讨论】:
【参考方案1】:您还可以在“brokerChannel”上注册 ChannelInterceptor。这是 SimplMessagingTemplate 向其发送消息的通道。这将允许您检测从应用程序流向消息代理的所有消息。
这对于许多情况来说可能已经足够了,但是在更分散的环境中可能会有多个应用程序实例,在这种情况下,您只能检测来自一个应用程序实例的消息。我们可以考虑提供一些机制来接收给定主题列表的代理消息。您只需配置主题列表并提供 MessageHandler。如果可以请create a ticket in JIRA。
【讨论】:
以上是关于向非 Stomp/Websocket 消费者发送消息的主要内容,如果未能解决你的问题,请参考以下文章