如何从MQTT生成并在ActiveMQ中作为MQTT和JMS使用

时间:2015-06-09 04:32:36

标签: jms activemq mqtt

我有一个设置,其中消息作为MQTT生成到ActiveMQ。 我有两个消费者,一个是JMS,另一个是MQTT。

当我将消息作为JMS消息发布到主题“foo”时,我在JMS和MQTT消费者处都收到消息,但是当我在同一主题上作为MQTT发布时,我只在MQTT使用者和JMS消费者一无所获。

在作为MQTT发布时,我是否需要专门做一些事情,以便能够作为MQTT和JMS使用。

请帮忙。

更新:

JMS Consumer
JMS Producer
MQTT Publisher
MQTT Subscriber
activemq.xml

ActiveMQ Web Console

1 个答案:

答案 0 :(得分:2)

您的问题似乎是您的JMS使用者期望消息作为TextMessage到达,这在处理MQTT生成的消息时是错误的假设。

MQTT消息是二进制的,没有内容类型信息或标头来定义有效负载。出于这个原因,代理将始终将它们解释为BytesMessage并将其分配。您将需要为该事实编码并使用BytesMessage,然后将有效负载读取为String。