当客户端未确认消息时,ActiveMQ MQTT(QoS 1)不会重新发布消息

时间:2017-01-05 12:46:05

标签: activemq mqtt

我使用ActiveMQ 5.10作为MQTT Broker,其中一个Java客户端在JMS中发送消息,一个C客户端用于接收消息。

这是Java代码片段:

MessageProducer producer = session.createProducer(new ActiveMQTopic("topic1"));
TextMessage text = session.createTextMessage("test msg");
text.setIntProperty("ActiveMQ.MQTT.QoS",1);
producer.send(text);

在捕获TCP包之后,我确认了问题:如果ActiveMQ发出了一条消息但没有从C客户端收到PUBACK,则ActiveMQ没有重新发送该消息。因此,C客户端将永远不会再收到消息,该消息是在QoS 1下的(至少一次)。

如何使用JMS发送消息(和/或配置ActiveMQ)以使QoS 1正常工作?非常感谢!

0 个答案:

没有答案