射频和无线供应商和资源的家

一站式满足您的射频和无线需求

MQTT教程| MQTT体系结构,MQTT协议用例

本MQTT教程涵盖了MQTT体系结构和MQTT协议在不同MQTT用例中的工作操作。关于MQTT协议体系结构的本教程描述了代理和客户端之间的MQTT消息流。


MQTT架构

图1描述了MQTT体系结构。如前所述,MQTT是基于代理的协议。在这些终端设备(即客户端)中,通过代理进行通信。代理是一个服务器,可以安装在云中的任何机器上。有不同类型的代理,如HiveMQ, mosquito等。单个客户机和代理还可以相互通信。

由于MQTT运行在TCP/IP层之上,它也是面向连接的协议。客户端在通信之前与代理(即服务器)建立连接。MQTT是一种发布-订阅协议。在这里,客户端和服务器都使用“publish”消息相互发布任何信息(即参数,如温度、湿度、事件(ON/OFF)等)。任何数量的客户端或终端设备都可以通过代理订阅事件。由于这种订阅,当任何事件或参数发生变化时,经纪人将通知订阅的客户有关事件或参数的变化(即温度,湿度等)。

MQTT消息格式

下表提到了客户端和代理之间交换的MQTT协议消息。

MQTT消息 描述与流动方向
连接 客户端到服务器(即代理),客户端请求连接到服务器。
CONNACK 服务器到客户端,连接确认
发布 客户机到服务器或服务器到客户机
发布消息
PUBACK 客户机到服务器或服务器到客户机
公开承认
PUBREC 客户机到服务器或服务器到客户机
发布了
PUBREL 客户机到服务器或服务器到客户机
发布版本
PUBCOMP 客户机到服务器或服务器到客户机
发布完成
订阅 客户端到服务器
客户端订阅请求
SUBACK 服务器到客户端
订阅确认
退订 客户端到服务器
退订请求
UNSUBACK 服务器到客户端
退订承认
PINGREQ 客户端到服务器
Ping请求
PINGRESP 服务器到客户端
平响应
断开连接 客户端到服务器,客户端正在断开连接

MQTT协议消息格式

MQTT协议消息格式

图2描述了MQTT消息格式。它由固定消息头、变量消息头和有效负载组成。大多数消息类型使用前两个字节。很少有消息类型使用变量头和有效负载。

MQTT协议体系结构工作操作

MQTT消息流

让我们了解MQTT协议体系结构的工作操作。图3描述了客户机和代理之间的MQTT消息流。我们将采用两个MQTT用例来理解MQTT体系结构的工作操作。

MQTT用例#1:代理想要打开或关闭与远程客户端#1连接的灯
➨最初由客户端#1使用CONNECT和CONNACK消息与代理建立连接。
➨下一个代理与客户端#1通信,以打开或关闭与它接口的灯。它使用PUBLISH和PUBREC等消息。
本用例用于Zigbee或LoRaWAN网络中路灯的开/关。这些灯通常与这些无线网络中的终端节点或终端设备连接。一个Zigbee或LoRaWAN网关控制多个终端节点。需要多个这样的网关来覆盖整个城市。

MQTT用例#2:客户机#2或客户机#3希望根据传感器向代理更新温度/湿度状态
➨客户端#2和客户端#3将使用PUBLISH消息向代理发送温度或湿度更新。此信息存储在数据库中,并将发送给所有订阅了这些主题的订阅者(即温度,湿度)。该信息被“推送”到主题的所有订阅客户端。
➨如果客户端#1已经订阅了主题(即温度,湿度),它将使用PUSH操作从代理获取信息。
这个用例用于在有任何更新时自动获取不同类型的传感信息。为此,不同类型的传感器(如湿度传感器、温度传感器等)与终端节点连接。这些终端节点向代理发布(任何事件更新的)信息。代理将更改通知所有已订阅的客户端。网关之间的通信

目前有两种主要的数据交换协议架构,即基于代理的和基于总线的。在本MQTT教程中,我们研究了基于代理的MQTT协议体系结构。无线物联网技术,如zigbee, LoRaWAN使用MQTT进行客户端和路由器之间的通信。AMPQ、CoAP和JMS等协议也使用基于代理的体系结构。DDS、REST和XMPP等协议使用基于总线的体系结构。请参考基于总线的vs基于Broker的架构>>获取更多信息。

MQTT与HTTP、MQTT与DDS、MQTT与REST、MQTT与SMQTT、MQTT与CoAP之间的差异

MQTT vs HTTP >>MQTT vs REST >>MQTT vs DDS >>MQTT vs SMQTT >>MQTT vs CoAP >>

Zigbee和LoRaWAN相关链接

主页LoRa教程LoRa频段LoRa协议栈LoRa MAC层LoRaWAN类罗拉的特性LoRa收发模块什么是zigbeeZigbee网络架构基础Zigbee协议栈Zigbee物理层Zigbee物理层框架Zigbee MAC层帧Zigbee频段无线个域网设备无线个域网的产品

物联网无线技术

无线局域网线程EnOcean罗拉SIGFOXWHDI
无线个域网6 lowpan无线个域网RF4CEz - waveNFC射频识别INSTEON

两者有什么区别

OSI层和TCPIP层的区别TCP UDP的区别FTP vs HTTPFTP vs SMTPFTP与TFTPARP vs RARPNAT vs PATRIP vs OSPFSLIP vs PPPIMAP4 vs POP3IPV4 vs IPV6Internet和Intranet的区别

RF无线教程


分享本页

翻译本页
Baidu