使用 python paho mqtt 客户端我想获取给定主题中的所有消息并断开与代理的连接。
我可以使用
simple()
轻松完成此操作,如下所示,但前提是我使用 msg_count
指定消息计数。如果消息计数是可预测的或者有一种方法来计算给定主题中的消息,那就没问题了。
import paho.mqtt.subscribe as mqtt_subscribe
messages = mqtt_subscribe.simple('proxies/#', msg_count=4, hostname='mqtt.somewhere.io')
for m in messages:
print(m.payload.decode())
我还可以使用入门中所示的示例获取主题中的所有消息。但是,这使用了
loop_forever()
,我只想获取所有消息并断开连接。我尝试过其他 loop*()
功能,但没有一个提供我正在寻找的结果。
回调示例也返回所有消息,但我不清楚如何与之断开连接。
mosquitto_sub
客户端来获取所有消息:mosquitto_sub -h mqtt.somewhere.io -t "proxies/#" -W 1
但我更愿意与 paho 客户端保持一致并更好地理解它。