MQTT协议概述

一、什么是MQTT?

MQTT的全称是 Message Queuing Telemetry Transport,是消息队列遥测传输。

它是一种极其轻量级、高效、基于发布/订阅模式的消息传输协议,专为低宽带、高延迟或不稳定的网络环境中连接的设备而设计。

二、核心概念与工作原理        

MQTT协议的核心架构基于三个角色和两个动作。

  • 发布者:发送消息的客户端。它只负责把消息发送到某个主题,不关心谁会收到。
  • 订阅者:接收消息的客户端。它订阅一个或多个主题,只接收它订阅的主题消息。
  • 代理:MQTT服务器。它是整个系统的中枢,负责接收所有消息,过滤它们,然后将消息路由给所有订阅相应主题的客户端。发布者和订阅者之间完全解耦,它们基本不知道对方的存在。

MQTT协议的两个动作。

  • 发布:客户端向代理发送消息并指定一个主题。
  • 订阅:客户端告诉代理:"我订阅了某个(或多个)主题的消息,一有消息就发给我。"

三、关键特性与优势

1.轻量高效
  • 协议头很小(最小只有2字节),极大减少了网络传输负担。
  • 消息内容可以是二进制,非常紧凑。适合传感器发送的微小数据包。
2.基于发布/订阅模式
  • 空间解耦:发布者和订阅者不需要知道彼此的地址。
  • 时间解耦:发布者和订阅者不需要同时运行。即使订阅者离线,代理也可以为其保留消息,待重新上线后发送(根据服务质量等级设置)。
3.支持多种服务质量

这是MQTT的一个核心强大功能,开发者根据不同场景在消息的可靠性和传输开销之间进行权衡。

  • Qos 0 最多一次:消息发出即忘,不保证送达。适用于可以接受数据丢失的场景,如频繁的温度读数。
  • Qos 1 至少一次:确保消息至少送达一次,但可能重复。接收方需要能处理重复消息。
  • Qos 2 恰好一次:确保消息只送达一次。这是最可靠但也是最慢的方式,用于非常重要的指令,如支付、关键开关命令。
4.持久会话与遗言
  • 持久会话:客户端可以要求代理保存其订阅消息和可能错过的消息(当Qos > 0时),避免每次重连都重新订阅和丢失消息。
  • 遗言:客户端可以预先设置一条“遗言”。如果它异常断开连接,代理会自动将这条遗言消息发布到指定主题,通知其他设备该客户端离线了。
5.低功耗
  • 由于轻量性和高效性,非常适合电池供电的设备,可以显著延长设备续航。

四、主要应用场景

MQTT几乎是为物联网量身定做的协议,其典型应用包括:

物联网与智能家居:传感器数据采集(温度、湿度)、智能灯、开关的控制。

即时聊天应用:虽然不常见,但其发布/订阅模式非常适合简单的聊天室功能。

工业物联网:监控远程设备、石油管道、风力发电厂等。        

移动应用:手机App的推送通知(比HTTP更省电、省流量)。

车联网:车辆与云平台之间的数据通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值