MQTT入门教程05:介绍
系列索引:MQTT入门教程索引
MQTT是物联网上最常用的消息传递协议(IoT)。MQTT代表MQ遥测传输。该协议是一个定义物联网设备如何发布和订阅的一组规则在互联网上获得的数据。MQTT用于消息传递和数据交换在物联网和工业物联网(IIoT)设备之间,如嵌入式设备,传感器、工业plc等。该协议是由事件驱动的,并且使用发布/订阅(Pub/Sub)模式连接设备。发送方(发布者)和接收方(订阅者)通过主题进行通信并且相互分离。它们之间的连接是由MQTT broker处理。MQTT代理会过滤所有传入的内容发送消息,并将它们正确地分发给订阅服务器。
什么是MQTT
MQTT协议是物联网消息传递的实际标准。由OASIS和ISO进行标准化,MQTT发布/订阅协议提供了一个可扩展和可靠的方式连接设备。MQTT被许多公司用来将数百万台设备连接到因特网
为什么公司选择MQTT
- 它需要最小的资源,因为它是轻量级和高效的
- 支持设备和云之间的双向消息传递
- 可以扩展到数百万个已连接的设备吗
- 支持通过3个QoS级别的可靠消息传递
- 在不可靠的网络上运行良好
- 启用了安全性,因此它可以与TLS和通用的身份验证协议一起工作
特性
MQTT客户端
MQTT客户端向已订阅的用户发布消息给MQTT代理和其他MQTT客户端他们想要接收的信息。MQTT客户端的实现通常需要最小的内存占用空间,因此非常适合部署在小型受限设备上,在其带宽要求下非常高效
MQTT Broker
MQTT Broker/Server(中间人、服务端)接收已发布的消息,并将该消息发送给订阅的MQTT客户端。一个MQTT消息包含一个消息主题MQTT客户端订阅了这些订阅,而MQTT经纪人则使用这些订阅用于确定要接收该消息的MQTT客户端的列表。
QoS等级
Quality of Service
MQTT为发送方和接收方之间的协议实施了3个服务质量级别:
- 最多一次(0),
- 至少一次(1),
- 正好一次(2)。
QoS等级允许更可靠的物联网应用程序,因为底层的消息传递基础设施和适应不可靠的网络环境
持久会话
MQTT允许在客户端和代理之间进行一个持久的会话。
这允许即使网络断开连接,会话也能持续存在。
一旦网络重新连接,要重新连接客户端到代理的信息仍然存在。
这是使MQTT协议在不可靠的蜂窝网络上使用时比HTTP更有效的关键特性之一。
保留的消息
订阅了新主题的MQTT客户端无法预测何时能收到第一条信息
然而,一个MQTT的Broker可以存储保留的消息,它可以在新的MQTT订阅时立即发送。
例如,MQTT客户端在订阅时将从主题收到至少一条消息。
LWT
Last Will and Testament,最后的意愿和测试
如果MQTT客户端不优雅地断开连接,MQTT客户端机可以向MQTT代理指定一条消息,称为最后意志。
它允许一个客户端在客户端被断开时拥有的更优雅的系统范围内的通知。