gpt4 book ai didi

MQTT:如何知道何时收到了所有保留的消息

转载 作者:行者123 更新时间:2023-12-04 16:03:49 26 4
gpt4 key购买 nike

订阅 MQTT 主题(可能包含通配符)后,有没有办法确定已收到订阅主题的所有保留消息?

(更准确地说:订阅时存储在代理处的所有消息都保留了消息)

如果没有直接的方法,是否有任何技巧可以知道它(例如向订阅的主题发送具有特定 QoS 的新保留消息,这肯定是在旧消息之后收到的)?

我的问题的背景是我想要实现的这个功能请求( https://github.com/marvinroger/homie-esp8266/issues/313 )。

所以这将是带有 AsyncMQTT 库的 arduino (ESP8266) 的引用实现,但我的问题通常也适用于其他实现(例如使用 paho-mqtt 等)。

最佳答案

简短的回答,没有。

客户端无法知道哪些主题可能随时有保留消息等待它们,更不用说订阅时了。

您唯一能做的就是确保您在 QOS 1 或 2 订阅,此时经纪人将尽一切努力将它们交付给您。

唯一的迹象是第一个没有保留的消息的到达,因为代理应该(我认为)在任何新消息之前传递所有保留的消息。但是考虑到对该主题的任何更新都可能被标记为保留以及可能无济于事,您需要有关不同主题的(未保留)消息来感受一下。

关于MQTT:如何知道何时收到了所有保留的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com