python - 如何在paho-mqtt中按主题查看历史?

在某些时候,我需要查看特定主题“topicName”的历史记录。我怎样才能在 python 中做到这一点?

回答1

简短的回答:你没有

(MQTT 协议要求代理只为当前离线并请求高 QOS 订阅的已知客户端发送 stores 消息,否则它不会保留任何状态,并且客户端库不会为您保留历史记录)

更长的答案:

查看发布到主题的消息历史的唯一方法是设置客户端订阅该主题并在某处(例如在数据库中)store 订阅它们,然后查询该 store。 (一些经纪人有插件支持可以做到这一点)

回答2

paho-mqtt 不会自动保存历史记录。您必须将每个传入的 MQTT 消息添加到历史对象。像这样:

import paho.mqtt.client as mqtt

history = []

def on_message(client, userdata, message):
    history.append(message))

client = mqtt.Client()
client.on_message = on_message

client.connect(ADDRESS, PORT, 60)
client.subscribe(TOPIC, 0)

client.loop_forever()

然后在某些时候您可以查看历史数据。您也可以使用 history = [] 清除历史记录。我希望这能引导你朝着正确的方向前进。

相似文章

最新文章