我见过用于清除一次性消息的 mosquitto_pub -h [server] -r -n -t [XYZ]
语法。我的问题是设备开发人员发布了很多垃圾消息。
我有一个 Java/Paho 代码库,我想修改它以根据需要自动执行此操作,但我似乎无法发布零字节消息。我试过了
client.publish(topic,null);
……但这似乎没有用。
关于如何批量删除所有内容的任何建议?
原文由 JohnL 发布,翻译遵循 CC BY-SA 4.0 许可协议
我见过用于清除一次性消息的 mosquitto_pub -h [server] -r -n -t [XYZ]
语法。我的问题是设备开发人员发布了很多垃圾消息。
我有一个 Java/Paho 代码库,我想修改它以根据需要自动执行此操作,但我似乎无法发布零字节消息。我试过了
client.publish(topic,null);
……但这似乎没有用。
关于如何批量删除所有内容的任何建议?
原文由 JohnL 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下是如何使用 shell 脚本正确执行此操作。
#!/bin/sh
echo "cleaning " $1 " :: usage: cleanmqtt <host>"
mosquitto_sub -h $1 -t "#" -v --retained-only | while read line; do mosquitto_pub -h $1 -t "${line% *}" -r -n; done
只需将它放在一个名为 somthing 之类的文件中
finally_a_working_way_to_remove_all_those_annoying_messages.sh
然后运行
sh finally_a_working_way_to_remove_all_those_annoying_messages.sh localhost
这个解决方案很粗糙。您无法指定要删除的内容或任何内容。在您可以假设它已收到所有消息后,您可能必须使用 ctrl-c 中止。
原文由 Gussoh 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.5k 阅读
2 回答3.3k 阅读
3 回答1.8k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
1 回答912 阅读✓ 已解决
2 回答1.9k 阅读
1 回答1.9k 阅读
使用 paho 客户端代码有 2 个选项,具体取决于您使用的 2
publish
方法中的哪一个。或者
另一种选择是停止 mosquitto 并删除持久性文件并重新启动