当我向IoT平台发送MQTT消息时,我有一个应用程序,IoT平台有自己的代理。当经纪人下跌2-3天时,问题就出现了,我损失了2-3天的数据。
我想知道是否有办法确保所有数据点都被存储,然后在代理按顺序返回时发送。我一直在用莫斯基托测试这个,但我似乎无法让它起作用。
这是一个使用服务质量(QoS)的问题吗?这是工作的,甚至经纪人是坏了,还是它需要与经纪人沟通?或者我需要使用持久化还是保留?
发布于 2021-12-14 05:01:55
是的,您在正确的轨道上,它需要QoS并且必须与其他设置一起使用,您可以在以下条件下进行测试:
False的干净会话标志和唯一的客户端ID初始化MQTT客户端;
下面是一个使用Paho python库的示例,
mqttc = mqtt.Client("specify_a_unique_client_id",clean_session=False)注意:您必须指定一个唯一的客户机ID,这样您的代理仍然可以识别前一个客户端会话,以防它重新连接。将客户端ID保留为空将自动生成一个新ID。
,这里是一个很好的文章系列,可以解释MQTT中的所有配置,以防您想要了解细节。
https://stackoverflow.com/questions/70343265
复制相似问题