没有从 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+您的酒吧。
我已经设置了一个 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+您的酒吧。