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

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

173430 次浏览

订阅 #可以订阅除了以 $开头的主题(这些主题通常是控制主题)之外的所有内容。

当然,最好先了解您订阅的是什么,并注意有些代理配置可能不允许显式订阅 #

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

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

使用通配符“ #”,但是要注意,在某些情况下,您必须以某种方式理解通过总线传递的数据!

具体的例子

Mosquitto.org 非常活跃(在本文发表时)。这是对 MQTT 用户 linux 设备的一个不错的冒烟测试:

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

“ #”是主题的通配符,返回所有消息(主题) : 服务器有很多流量,因此它返回一个消息“消防水管”。

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

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

选择:

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