理解 MQTT:轻量级物联网消息协议如何工作
在物联网世界里,传感器将数据发送到远端设备,往往依赖 MQTT——一种轻量、低带宽的发布/订阅协议。如果对发布者、订阅者、代理等术语感到陌生,本指南将阐明消息如何流转、为何 MQTT 高效,以及如何实时体验它。
什么是 MQTT?
MQTT,即消息队列遥测传输,是一套规则,让设备通过互联网或局域网交换信息。专为低功耗、受限带宽环境设计,MQTT 使用极小报文和事件驱动方式,仅在设备需要共享或接收新数据时传输。
每个设备可同时作为发布者(发送数据)和订阅者(接收数据)。与许多协议不同,MQTT 不直接在设备间路由消息,而是所有通信都通过一个称为代理的中央实体。
MQTT 代理与客户端
客户端——无论发布、订阅或两者兼有——仅与代理通信。可把代理想象成边境海关官员:接收每个进站包裹并分发至正确目的地。这种解耦使网络可扩展,简化设备设计。
常用代理包括:
- Mosquitto——免费开源,可在 Windows、Linux、macOS 本地运行。
- EMQX——具备高级集群功能的开源代理。
- 托管选项如 HiveMQ Cloud 和 CloudMQTT 提供托管的云端代理。
MQTT 如何工作
代理处于每次 MQTT 操作的核心。发布者向代理的特定主题发送消息。主题是用正斜杠分隔的层级字符串(如 factory/line1/temperature)。仅订阅该主题的客户端才会收到消息。
这种基于主题的路由意味着:
- 发布者可向多个订阅者发送单条消息,无需重复。
- 订阅者可同时监听多个发布者的多个主题。
- 未订阅的客户端永不收到无关数据,节省带宽。
示例场景
假设工厂车间有一个温度传感器和一个压力传感器,分别发布到不同主题:
- 温度主题:
factory/line1/temperature— 载荷:25.3°C - 压力主题:
factory/line1/pressure— 载荷:18.7psi
仅关注温度的订阅者 1 收到第一个载荷;关注压力的订阅者 2 收到第二个。代理自动完成路由。


典型发布命令
在本地 Mosquitto 代理上,可通过命令行发布消息:
mosquitto_pub -h localhost -t retain/topic -m "Take a hike"
参数说明:
-h localhost— 代理地址。-t retain/topic— 主题名。-m "Take a hike"— 订阅客户端将接收的载荷。
图形化客户端如 MQTT Explorer 和 MQTTX 提供友好界面,让初学者也能轻松实验发布/订阅。
总结
MQTT 的发布/订阅模型,凭借代理与主题,为物联网设备通信提供了简单、高效、可扩展的方式。掌握这些核心概念,即可在制造、智能家居等领域解锁强大应用。
自动化控制系统
- Schilling Robotics集成Energid Actin软件,赋能Gemini ROV深海复杂作业
- 制造业营销人必抓的4大增长驱动趋势
- 释放超自动化:超越RPA转型业务运营
- 自动化现代化规划战略指南
- 清晰车间指引加速员工培训提升生产力
- 用自动化机器人码垛解决方案变革物流
- 制造业能否同时增人增机?自动化就业影响深度解析
- 智能自动化如何提升英国制造业生产力
- PWM 传感器原理与现场测试全攻略:数字万用表轻松搞定
- Chiron Variocell Pallet系统助力FZ/DZ 16五轴立加实现柔性生产
- MIT初创公司Pickle推出快速卸车机器人 加速电商配送
- B&R推出全集成智能相机 微秒级精准同步机器功能