我的问题围绕此幻灯片来自Rossen Stoyanchev个网络研讨会之一。
使用simpleBroker时,我可以使用在UserDestination中获取并转换的/ user / **目标格式向各个用户发送消息。我也可以使用它发送到特定会话或特定用户的所有会话。
只要发件人也能够使用/ user / **或其助手注释@SentToUser等,也可以使用ActiveMQ或RabbitMQ等外部代理。
但是,如果我没有在本地处理这些消息,并且我有另一个消费者连接到外部消息代理(例如Apache Camel)如何处理用户特定消息并在用户和会话级别进行回复?
答案 0 :(得分:1)
如果其他使用者位于同一个JVM中,您可以注入“brokerMessagingTemplate”bean并使用它将消息发送到用户前缀目标。
对于4.2,我们计划在具有连接到外部代理的多个Web应用程序服务器的部署中支持用户目标(请参阅https://jira.spring.io/browse/SPR-11620)。因此,如果其他使用者位于不同的JVM中,那么您也可以在该JVM中声明@EnableWebSocketMessageBroker设置,或者如果您不需要WebSocket客户端位,则可以简单地扩展AbstractMessageBrokerConfiguration。
HTH