我有一个设置,其中消息作为MQTT生成到ActiveMQ。 我有两个消费者,一个是JMS,另一个是MQTT。
当我将消息作为JMS消息发布到主题“foo”时,我在JMS和MQTT消费者处都收到消息,但是当我在同一主题上作为MQTT发布时,我只在MQTT使用者和JMS消费者一无所获。
在作为MQTT发布时,我是否需要专门做一些事情,以便能够作为MQTT和JMS使用。
请帮忙。
更新:
JMS Consumer
JMS Producer
MQTT Publisher
MQTT Subscriber
activemq.xml
答案 0 :(得分:2)
您的问题似乎是您的JMS使用者期望消息作为TextMessage到达,这在处理MQTT生成的消息时是错误的假设。
MQTT消息是二进制的,没有内容类型信息或标头来定义有效负载。出于这个原因,代理将始终将它们解释为BytesMessage并将其分配。您将需要为该事实编码并使用BytesMessage,然后将有效负载读取为String。