mqtt - 获取保留消息列表
问题描述
我觉得我的客户没有设置“保留”消息标志。是否有可能以某种方式获取 Mosquitto MQTT 代理中的保留消息列表?如何?
解决方案
当客户端接收到消息时,它将在标头中设置保留位,因此您应该能够从任何客户端进行检查,具体操作方式取决于您使用的客户端库。
根据客户端发布消息的速率(例如,消息之间有足够长的间隙),您可以使用该mosquitto_sub
命令进行检查。如果您知道客户端上次发布的时间,请等到之后再使用命令行工具订阅,如果它立即打印一条消息,那么就有一条保留的消息。
另一种选择是检查mosquitto持久化数据库,包含在源代码src/db_dump
目录中有一个工具可以走数据库的内容。保留的消息应该被写入数据库,因此应该允许您检查。我不认为该工具已构建并包含在任何二进制安装包中,因此您必须自己构建它。
推荐阅读
- regex - 替换上下文中字符的所有实例
- vega-lite - 带有预分箱数据的网格
- java - 添加、编辑、删除、搜索和排序客户积分列表的 Java 程序
- javascript - 如何在下拉Angular Material上添加一个清晰的图标?
- python - 在句子中查找单词并按顺序排列
- javascript - 命令行中的 Laravel NPM 错误“npm run watch”
- javascript - 对齐一个简单的列表,保持圆形
- python - 在 MAC OS 上安装 Python 3.9.1 但仍然说 Python 版本是 2.7
- c - Fscanf 从文件 C 的中间读取
- javascript - 动作发布 redux thunk