我是 MQTT 协议的新手。当我通读文档时,我看不到任何删除已发布主题的功能。我的目的是允许发布者删除已发布的主题。我是否遗漏了 mqtt 文档中的某些内容?有什么建议吗?谢谢!
好吧,如果您的意思是从 mosquitto 中删除某个主题,以便在您订阅 # 时不会显示该主题,您可以使用:
mosquitto_pub -h <hostname> -p <port> -u <user> -P <password> -t '<topic you want to remove>' -n -r
不存在删除主题的概念。
如果发布者停止发布某个主题的数据,订阅者将停止接收该主题的数据,但没有任何内容可以删除。订阅者可以订阅从未发布过消息的主题,这很好,代理将发送将来可能发送的任何消息。
发布/订阅消息主题不像消息队列需要预先定义
如果您想要一种简单的方法来做到这一点,使用 GUI,我建议安装 MQTTUI。它是一个轻量级 GUI,可用于在终端中查看主题和 MQTT 消息流。它可以在 Github 上找到。
使用 MQTTUI,您只需选择要删除其消息的主题,然后输入 Del。它会提示您一个确认对话框,以确认您要清除保留的主题。
在后台,它很可能按照@JeffL 在他的回复中建议的方式进行操作。