了解 MQTT:轻量级 IoT 消息传递协议的工作原理
在物联网领域,传感器向远程设备发送数据的能力通常由 MQTT(一种轻量级、低带宽发布/订阅协议)提供支持。如果发布者、订阅者或代理的术语感觉不熟悉,本指南将阐明消息如何传输、为什么 MQTT 高效以及如何实时试验它。
什么是 MQTT?
MQTT(即消息队列遥测传输)是一组规则,使设备能够通过互联网或本地网络交换信息。 MQTT 专为低功耗、有限带宽环境而设计,使用微小消息和事件驱动方法,仅在设备需要共享或接收新信息时传输数据。
每个设备都可以充当发布者 (发送数据)和订阅者 (接收数据)。与许多协议不同,MQTT 不会直接在设备之间路由消息;相反,所有通信都通过称为经纪人的中央实体 .
MQTT 代理和客户端
客户——无论是发布、订阅还是两者——仅与经纪人沟通。将经纪人视为边境的海关官员:它接收每个传入的包裹并将其引导至正确的目的地。这种解耦保持了网络的可扩展性并简化了设备设计。
受欢迎的经纪商包括:
- 蚊子 – 在 Windows、Linux 或 macOS 上本地运行的免费开源代理。
- EMQX – 具有高级集群功能的开源代理。
- 托管选项,例如 HiveMQ Cloud 和 CloudMQTT 提供基于云的托管经纪商。
MQTT 工作原理
代理是每个 MQTT 操作的核心。发布者向代理发送有关特定主题的消息 。主题是由正斜杠分隔的分层字符串(例如,06 )。只有订阅该主题的客户端才会收到该消息。
这种基于主题的路由意味着:
- 发布者可以向多个订阅者发送一条消息,而无需重复。
- 订阅者可以同时收听来自不同发布者的多个主题。
- 取消订阅的客户端永远不会收到不相关的数据,从而节省带宽。
说明性示例
考虑一个带有温度和压力传感器的工厂车间。两个传感器发布到不同的主题:
- 温度主题:
10– 有效负载:28°C - 压力主题:
36– 有效负载:49磅/平方英寸
订阅者 1 仅对温度感兴趣,因此接收第一个有效负载。订阅者 2 专注于压力,接收第二个。代理自动处理路由。


典型发布命令
在本地 Mosquitto 代理上,您可以通过命令行发布消息:
<前>09前>这里:
51– 经纪人的地址。68– 主题名称。77– 任何订阅的客户端将收到的有效负载。
图形客户端,例如 MQTT Explorer 和 MQTTX 提供用户友好的发布和订阅界面,即使对于初学者也能轻松进行实验。
总结
MQTT 的发布/订阅模型由代理和主题提供支持,为 IoT 设备提供简单、高效且可扩展的通信方式。掌握这些核心概念可以解锁制造业、智能家居等领域的强大应用。
自动化控制系统