繁体   English   中英

如何使用ActiveMQ将消息路由到特定客户端?

[英]How to route messages to specific clients using ActiveMQ?

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

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

但是我有一个具体要求:

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

请注意,如果客户端未连接,则无需保留消息。 消息正在用于通知Web客户端应用程序它们需要执行的操作。

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

如果ActiveMQ并非最佳选择,您还能推荐其他东西吗?

谢谢

是的,ActiveMQ是一个不错的选择。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM