没有从 Paho 客户端的 MQTT 代理获取发布的消息

Not getting published message from MQTT broker in Paho client

我已经设置了一个 Moquette MQTT 代理并将其与 eclipse Paho 客户端连接(我将称之为 paho1)。正在订阅 in/# 个主题。

我创建了另一个 Paho 客户端(我称之为 paho2),当然具有不同的客户端 ID,并将其发布到具有 in/device 主题的代理。

一开始,数据包发送成功。但是,当我断开 paho2 并重新连接到代理并发送相同的数据包时,它没有传送到 paho1

我想知道为什么会这样。我对 Paho 客户端的设置是 qos = 0(我也尝试了 1 和 2)。

MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(false);

我在看broker的日志,如下。成功后,我的协议版本被打印到日志中。

我建议尝试使用不同的工具重现该问题。与经纪人 运行ning,运行 订阅客户:

mosquitto_sub -h <hostname> -t in/# -v

然后单独发布:

mosquitto_pub -h <hostname> -t in/device -m message

这应该 return 非常快并且您的 mosquitto_sub 实例应该打印 in/device message。重复发布,您应该会看到相同的内容。

如果您没有看到重复的消息,则代理有问题。如果会尝试使用例如蚊子作为经纪人并重复您的代码。

如果您确实看到使用 mosquitto_pub/sub 的重复消息,则说明您的代码有问题。您可以继续尝试不同的排列,直到您更好地了解问题所在 - 即使用 mosquitto_pub+您的潜艇,mosquitto_sub+您的酒吧。