【问题标题】:How to send message to specific selector using ActiveMQ ajax如何使用 ActiveMQ ajax 向特定选择器发送消息
【发布时间】:2014-06-18 17:42:59
【问题描述】:

是否有可能使用 amq ajax 从浏览器发送 ActiveMQ 消息,包括主题和特定选择器?


我有一个分为两部分的应用程序:

PART 1 --> Web 客户端正在监听一个主题:

var myHandler = function(message) {console.log(message);}
amq.addListener('amqlistener', 'topic://mytopic', myHandler);

PART 2 --> Web 应用向该主题发送不同的订单:

amq.sendMessage('topic://mytopic', myData);

非常简单,一切正常。


现在,我需要过滤一些消息,所以我在 PART 1 中放置了一个选择器,如下所示:
amq.addListener('amqlistener', 'topic://mytopic', myHandler, {selector:"dev='xxxxx'"} );

这是(在第 2 部分中)我无法发送包含此特定选择器的消息的方式。

欢迎任何帮助:)

【问题讨论】:

  • 选择器仅适用于侦听器。如果您想从生产者端分离消息,请使用不同的主题。
  • 谢谢。但是,如果我在需要不同选择器时使用不同的主题,我将拥有上千个主题,这不是我的意图。我需要一个具有不同选择的主题...

标签: javascript ajax activemq


【解决方案1】:

您不使用选择器发送,而是使用选择器可以用来过滤消息的标题/属性发送。

amq 有一个如下所示的函数:

var sendJmsMessage = function(destination, message, type, headers)

它接受标题。我会在那里为您的标题“dev”提供值“xxxxx”。

【讨论】:

  • 谢谢。我试过这个,但是 amq.js 只使用这个函数来创建监听器,发送到服务器端的“监听”类型。我不知道为什么还没有实现从javascript端发送消息的功能。
  • 看代码,是的,你是对的。我实际上并没有测试代码,只是意识到这个函数看起来很适合这个工作。不过,为此添加一个自定义 servlet 将非常简单。但我明白你的意思。将删除此答案。
  • 我在 websocket 上使用了 stomp 和 mqtt 以及 ActiveMQ,效果很好。他们有更多的选择,如果你能满足 websocket 的需求,你会喜欢的。
猜你喜欢
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2017-09-13
  • 2019-09-29
  • 2017-01-28
  • 2014-08-14
  • 2015-04-27
  • 1970-01-01
相关资源
最近更新 更多