生如夏花

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

MQTT持久会话

MQTT中的持久会话允许客户端在断开连接时维护其会话状态,包括订阅的主题和未传递的消息。

非持久会话在断开连接时丢弃会话状态,要求客户端重新连接上再次订阅主题,并可能错过在断开连接期间发布的消息。

持久会话和非持久会话的选择取决于应用程序对会话连续性和消息持久性的要求。

MQTT服务质量

MQTT Quality of Service(QoS,服务质量)是消息发送者和接收者之间的协议,用于定义消息的传递保证级别。

QoS具有3个级别,分别是:

  1. 最多一次(QoS 0)
  2. 至少一次(QoS 1)
  3. 确定一次(QoS 2)

其中涉及的MQTT报文有四种,分别是PUBLISH、PUBACK、PUBREC以及PUBCOMP。

MQTT主题

MQTT主题是MQTT客户端和代理之间进行通信的关键。

根据主题可以对消息进行有效的过滤和路由。

与消息队列相比,MQTT主题非常轻量。

客户端在发布或订阅所需的主题之前不需要创建该主题。代理接受每个有效的主题,而不需要事先进行任何初始化。

MQTT建立连接

MQTT协议的两个主要组件是客户端和代理。

MQTT客户端可以是任何运行MQTT库并通过网络连接到MQTT代理的设备。

MQTT代理负责接收、过滤以及向已订阅的客户端发送消息,并处理客户端身份验证和授权。

MQTT发布/订阅模式

发布/订阅(Pub/Sub)架构提供了一种灵活的、可伸缩的方式来构建能够处理许多连接的客户端的分布式系统。

MQTT基于发布/订阅架构,支持持久会话与服务质量QoS功能,实现了发布者与订阅者在空间、时间以及同步等方面的解耦。

MQTT简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一个基于C/S架构的发布/订阅模式的消息传输协议

目的是在带宽和连接有限的不可靠网络的环境下发送少量数据,设计思想是轻量、开放、简单并且易于实现。

这些特性使得MQTT非常适合在受限的环境的环境中使用,比如机器对机器(M2M)通信和物联网(IoT)。