当前位置: 首页 > 知识库问答 >
问题:

具有跺脚的用户目的地,Spring WebSocket,具有外部消费者的外部代理

魏宏邈
2023-03-14

当使用simpleBroker时,我可以使用/user/**目的地格式向单个用户发送消息,该格式在UserDestination中拾取并转换。我还可以使用它发送到特定会话,或发送到特定用户的所有会话。

当使用ActiveMQ或RabbitMQ等外部代理时,只要发送方也能够使用/user/**或其助手注释@SentToUser等,这也是可能的。

但是,如果我不在本地处理这些消息,并且我有另一个消费者连接到外部消息代理(例如apachecamel),那么如何处理特定于用户的消息并在用户和会话级别进行回复?

共有1个答案

经昱
2023-03-14

如果另一个使用者在同一个JVM中,则可以注入“BrokerMessageTemplate”bean,并使用它向用户前缀的目的地发送消息。

对于4.2,我们计划在部署中支持用户目的地,同时将多个Web应用程序服务器连接到外部代理(请参阅https://jira.spring.io/browse/SPR-11620)。因此,如果另一个消费者位于不同的JVM中,那么您也可以在该JVM中声明@EnableWebSocketMessageBroker设置,或者如果您不需要WebSocket客户端位,您可以简单地扩展AbstractMessageBrokerConfiguration。

HTH

 类似资料:
  • 我需要一个灵活的过滤器来过滤所有代码中的多个EventListener。我可以使用@EventListener(condition=“event.enabled”),但我的过滤器需要分析fooEvent的许多属性。 我希望我可以使用应用程序上下文中的谓词Bean: 但我得到: 是否可以为EventListerns使用外部复杂条件?或者至少定义具有复杂条件的全局侦听器,并在不重复完整条件的情况下继承

  • 我开始玩Quarkus和它的REST客户端。根据文档,应该创建一个Jax-RS带注释的接口,并用@RegisterRestClient进一步注释。 我的问题是,在服务器提供的一个工件中,我已经有了我需要连接的服务的JaxRS接口,我可以直接导入它。有没有办法使用已经创建的外部Jax-RS接口来创建服务?复制粘贴代码来获得一个完美的界面似乎是错误的,因为它已经很好地为我服务了。

  • 问题内容: 我正在开发API,一切正常。 对于特定问题,我正在使用本地CLI依赖项,该依赖项会处理一些 输入 文件并 输出 其他内容,以防从API返回。 我想知道(也许让我敞开心I)可以在生产中为该API提供什么样的服务。 这个想法是要有一个环境(例如在我的本地环境中)可以在同一台机器上安装不一定要写入的外部依赖项。 我的特定依赖项是fontforge和其他小东西。 提前致谢。 问题答案: 如果您

  • 我开始对kafka绝望了。对于一个私人项目,一家公司向我发送了一个kafka流。经过长时间的尝试,我终于设法连接到引导服务器并接收到第一条消息。但没有反序列化。目前数据格式如下:4868fa8 该公司以avro格式发送密钥和值,我也获得了几个模式URL。但是我不能正确地使用它们,这样我就能得到可读的数据。不管我怎么输入,它总是出错。只有当我在没有任何模式的情况下进行检索时,我才能得到如上所述的消息

  • 有以下消费者代码: 然后我用脚本生成消息: 问题是,当我将消费者作为两个不同的进程启动时,我会在每个进程中收到新消息。但是,我希望它只发送给一个消费者,而不是广播。 在Kafka的文献中(https://kafka.apache.org/documentation.html)其中写道: 如果所有使用者实例都具有相同的使用者组,则其工作原理就像在使用者之间平衡负载的传统队列一样。 我发现这些消费者的

  • 我有一个Android闭源模块,将在其他项目中用作库。它包含外部依赖项。 为了发布它,我用下面的gradle任务创建了一个Maven工件: 它生成.aar文件,即pom。xml等而没有问题。 然后我创建了一个依赖于我的库的项目。它会一直工作,直到需要访问外部依赖时,抛出一个类未找到异常。 如何编辑我的gradle任务以包含外部依赖项或至少对它们的引用?它们以mvnrepository.com和gi