首页 > 解决方案 > 获取保留消息列表

问题描述

我觉得我的客户没有设置“保留”消息标志。是否有可能以某种方式获取 Mosquitto MQTT 代理中的保留消息列表?如何?

标签: mqttmosquitto

解决方案


当客户端接收到消息时,它将在标头中设置保留位,因此您应该能够从任何客户端进行检查,具体操作方式取决于您使用的客户端库。

根据客户端发布消息的速率(例如,消息之间有足够长的间隙),您可以使用该mosquitto_sub命令进行检查。如果您知道客户端上次发布的时间,请等到之后再使用命令行工具订阅,如果它立即打印一条消息,那么就有一条保留的消息。

另一种选择是检查mosquitto持久化数据库,包含在源代码src/db_dump 目录中有一个工具可以走数据库的内容。保留的消息应该被写入数据库,因此应该允许您检查。我不认为该工具已构建并包含在任何二进制安装包中,因此您必须自己构建它。


推荐阅读