SpringBoot 3.x + Netty + MQTT 实战物联网智能充电桩【11章】
MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布订阅范式的消息协议。它工作在 TCP/IP协议之上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
MQTT特点
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
2、对负载内容屏蔽的消息传输;
3、使用 TCP/IP 提供网络连接;
4、有三种消息发布服务质量:
5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
MQTT协议的通信模型
2.1 mqtt客户端和服务端
MQTT 应用于M2M(机器节点与机器节点之间)的通信,两个机器之间不需要知道对方的IP地址和端口号,只需要 接收/发送 服务器(消息代理)的数据就行。所以MQTT可以总括为两种角色:MQTTCLient、MQTTServer
2.2 mqtt的主题和消息
主题Topic:一个自定义的字符串,可以理解为 消息的种类
消息:就是具体的消息内容
以一个智能家居系统为例子,我们把 客厅温度 作为一个 Topic主题;客厅温度传感器连接到MQTT server服务器,往 客厅温度 这个Topic主题发布温度数据消息。;然后手机APP作为客户端,订阅客厅温度这个主题,这是服务器就会把接收到的客厅温度传感器的温度数据消息转发到所有订阅了客厅温度这个Topic主题的客户端。
2.3 MQTT协议的连接与会话
最后了解一下mqtt的连接过程。
mqtt的连接由客户端发起,会建立一个会话,把客户端附着到服务器上。
服务器根据连接参数(ClientID,用户名,密码)对客户端进行鉴权和授权。
连接参数(CleanSession)决定此次会话是否是持久会话(Persistent Session)。

- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传