【发布时间】:2015-10-02 09:12:49
【问题描述】:
我想连接一个客户端,该客户端将监控代理的所有主题,以便在我不知道主题名称时响应事件。
【问题讨论】:
我想连接一个客户端,该客户端将监控代理的所有主题,以便在我不知道主题名称时响应事件。
【问题讨论】:
订阅# 可让您订阅除以$ 开头的主题以外的所有内容(无论如何,这些主题通常都是控制主题)。
当然,最好先知道您要订阅什么,并注意某些代理配置可能明确禁止订阅#。
【讨论】:
# 为您提供一切。没有要求以/ 开头,我会积极鼓励您不要这样做 - 它增加了额外的不必要的层次结构级别。如果将主题字符串 /one/two//three 拆分为其元素,则会得到 ``、one、two、``、three。例如,订阅/# 将不会收到发布到one 的消息。
mosquitto_sub -t '#' 或mosquitto_sub -t \#
您可以使用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
“#”是主题的通配符,返回所有消息(主题):服务器流量很大,所以它返回了一个“firehose”消息。
如果您的 MQTT 设备将主题为 irisys/V4D-19230005/ 发布到测试 MQTT 代理,那么您可以过滤消息:
mosquitto_sub -h test.mosquitto.org -t "irisys/V4D-19230005/#" -v
选项:
【讨论】:
使用通配符“#”,但请注意,有时您必须以某种方式理解通过总线的数据!
【讨论】: