如何订阅MQTT代理的所有主题

时间:2015-10-02 09:12:50

标签: mqtt mosquitto

我想连接一个客户端,该客户端将监控代理的所有主题,以便在我不知道主题的名称时对事件做出响应。

4 个答案:

答案 0 :(得分:51)

订阅#可让您订阅除$之外的所有主题的订阅(这些通常都是控制主题)。

当然,最好先了解您订阅的内容,并注意某些代理配置可能会禁止明确订阅#

答案 1 :(得分:38)

您可以使用mosquitto_sub(这是mosquitto-clients包的一部分)并订阅通配符主题#

mosquitto_sub -v -h broker_ip -p 1883 -t '#'

答案 2 :(得分:1)

具体示例

mosquitto.org非常活跃(在发布此信息时)。对于MQTT订阅者linux设备,这是一个很好的冒烟测试:

mosquitto_sub -h test.mosquitto.org -t "#" -v

“#”是主题的通配符,它​​返回所有消息(主题):服务器的流量很大,因此它返回了“ firehose”消息。

如果您的MQTT设备将主题irisys/V4D-19230005/发布到测试MQTT代理,则可以过滤消息:

mosquitto_sub -h test.mosquitto.org -t "irisys/V4D-19230005/#" -v

选项:

  • -h主机名(默认MQTT端口= 1883)
  • -t在主题之前

答案 3 :(得分:0)

使用通配符“#”,但要注意,在某些时候您将必须以某种方式理解通过总线的数据!