【问题标题】:How to route messages to specific clients using ActiveMQ?如何使用 ActiveMQ 将消息路由到特定客户端?
【发布时间】:2018-11-25 09:03:13
【问题描述】:

我想运行一个基于 Java 的消息代理,它将消息路由到 Web 客户端。 Web 客户端连接使用我们的自定义 Java websocket 代码在我们的服务器上处理,该代码根据用户数据库对用户进行身份验证。

我认为我的服务器端 websocket 处理程序代码将连接到 ActiveMQ 并通过 AQMP 执行订阅管理。

但是我有一个特定的要求:

  • 将主题的消息专门路由到一个或多个 Web 客户端

请注意,如果客户端未连接,我不需要保留消息。消息用于通知 Web 客户端应用程序需要采取的操作。

我正在考虑使用 ActiveMQ,但我希望有该产品经验的人能够澄清它是否支持此要求?

如果 ActiveMQ 不是最佳选择,您能推荐其他的吗?

谢谢

【问题讨论】:

    标签: java websocket activemq


    【解决方案1】:

    是的,ActiveMQ 是一个很好的选择。

    就具体方法而言,这取决于您的数据模型和消息流。 您有多种选择,包括:

    1. 生产和消费到每个客户端的主题 一种。客户端 ABC 的消息转到 topic://CLIENTS.ABC,客户端 XYZ 的消息转到 topic://CLIENTS.XYZ,订阅者相应地进行连接。

    2. 生成带有标头的消息并使用消费者端选择器(在 AMQP 中也称为“过滤器”)按客户端过滤消息。 (abc客户端订阅--ClientId = ABC,xyz客户端订阅--ClientId = XYZ)

    在使用 WebSockets 时,您可能还会考虑使用基于文本的协议 STOMP。 (取决于您的编程语言和您想到的可用库)

    【讨论】:

      猜你喜欢
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多