MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于发布 / 订阅模式的 轻量级 即时通讯协议,由 IBM 开发,设计目标是为低带宽、不可靠网络的物联网设备提供可靠的消息传输。
MQTT 就像一个 “消息中转站”。比如有个智能灯泡(发布者 / 订阅者),它想把自己 “亮没亮” 的消息告诉手机 APP,也想从手机 APP 那接收 “要亮还是要灭” 的指令。这时候就需要一个 “中转站”(代理服务器),灯泡把消息发给中转站,中转站再把消息转给手机 APP;手机 APP 把指令发给中转站,中转站再转给灯泡。而且这个过程很省流量,适合像灯泡这种本身没多少内存、网络也不太好的设备,还能实时传递消息。
| 特性 | MQTT | HTTP |
|---|---|---|
| 协议类型 | (1)发布 - 订阅式(像传小纸条,多人能同时收到) | 请求 - 响应式(像打电话,你问一句,对方答一句) |
| 带宽占用 | 极低(省流量,适合差网、小设备) | (2)较高(费流量,像大文件传输,适合网好的情况) |
| 实时性 | 支持实时消息推送(灯泡能立刻收到开 / 关指令) | (3)不支持实时推送(得主动问,比如 APP 得主动查灯泡状态,不能等灯泡自己报) |
| 适用场景 | (4)物联网设备(如智能灯泡、传感器) | Web 页面请求、API 调用(比如打开网页、查天气接口) |
协议特点
- 轻量级:协议头部开销小,数据包长度通常只有 2 字节,这使得它在资源受限的物联网设备上也能高效运行。
- 低带宽占用:MQTT 采用二进制格式传输数据,相比一些文本格式协议(如 HTTP),在传输相同内容时占用的带宽更少,适合在网络条件较差的环境下使用。
- 可靠性:支持消息的 QoS(Quality of Service,服务质量)等级,包括 QoS 0(至多一次交付)、QoS 1(至少一次交付)和 QoS 2(恰好一次交付) ,能根据不同的业务需求,在消息传输的可靠性和资源消耗之间进行平衡。
- 实时性:MQTT 协议支持服务器主动推送消息给客户端,不需要客户端频繁地发送请求去查询新消息,因此可以实现实时的消息推送,适用于对实时性要求较高的场景,比如智能家居设备状态的实时反馈等。
适用场景
- 智能家居:各类智能家电、传感器等设备,通常资源有限,且需要实时反馈状态或接收控制指令,MQTT 协议可以很好地满足这些需求。比如智能灯泡可以通过 MQTT 协议接收手机 APP 发送的开关、调节亮度等指令,同时将自身状态反馈给 APP 。
- 工业物联网:在工业生产中,大量的传感器需要实时采集设备运行数据,并将数据传输到监控中心。MQTT 协议低带宽、实时性的特点,能够确保数据及时、可靠地传输,同时适应工业现场复杂的网络环境。
- 车联网:车辆上众多的传感器需要实时将数据发送到云端,同时接收云端的控制指令。MQTT 协议能够满足车联网设备对低功耗、实时性和可靠性的要求。
与 HTTP 协议对比的优缺点
- 优点:相比 HTTP 协议,MQTT 协议更适合在低带宽、不可靠的网络环境中工作,能在资源受限设备上高效运行,并且具备实时消息推送功能。
- 缺点:MQTT 协议的使用和理解门槛相对较高,需要搭建和维护专门的代理服务器;而 HTTP 协议应用广泛,开发人员熟悉度高,且有成熟的 Web 生态。
MQTT 协议凭借其轻量级、实时性等特点,在物联网领域得到了广泛应用,成为物联网设备通信的重要协议之一。
13万+

被折叠的 条评论
为什么被折叠?



