如果你平时做的是单片机、RTOS 或者简单的 socket 通信,一旦项目要"上云",画风往往就变了:设备要上报数据、要收下发指令、还要考虑弱网和断线重连,自己写一套 TCP 私有协议不但累,还容易出坑。MQTT 就是这时候绕不开的东西——它不复杂,但真要把 QoS、会话保持、遗嘱消息这些细节用对,只靠"会调库"是不够的。
先说说这门课适合哪些人补
- 写过串口、CAN、TCP,但没接触过标准物联网协议的嵌入式方向学习者;
- 做过后端或云平台,知道 MQTT 这个名字,却讲不清连接、订阅、发布这套流程怎么走通;
- 在项目里用过 MQTT 客户端库,遇到"消息丢了""重连后订阅没了""QoS2 到底发了几次"这类问题靠试错解决的人。
如果你只是想随便找个库把数据传上去,这门课可能显得啰嗦;但只要你想把通信这块做扎实,报文结构和 QoS 这两块是躲不掉的。
它讲什么,重点在哪
内容围绕 MQTT 协议本身展开,不是泛泛讲物联网概念。比较关键的有三块:一是协议报文的具体格式,CONNECT、PUBLISH、SUBSCRIBE 这些报文里每个字段什么含义、标志位怎么设,理解了这层,抓包看日志才不至于懵;二是 QoS 0/1/2 三种等级各自的交互过程和代价,什么场景用哪一级,为什么 QoS2 会有额外的开销;三是主题与订阅机制,通配符怎么匹配、保留消息和遗嘱消息在什么情况下起作用。
环境侧会涉及 EMQX 的搭建和配置,也就是有一个能实际连上去、能抓包、能发消息的 Broker 用来验证。协议这种东西,光看文字很容易以为懂了,真上手连一次、断一次、重连一次,印象完全不同。
配套材料和练习怎么用
资料里带了视频、笔记、代码和课件。建议的用法是:先跟着视频过一遍概念,拿笔记对着报文格式把关键字段勾一遍,然后重点放在代码上——自己改一改客户端参数,故意把网断掉看会发生什么,把 QoS 从 0 调到 2 观察交互差异。课件可以用来对着抓包结果核对,不要只当成传参手册。
需要提醒的是,MQTT 本身不难,难的是"边界情况":网络抖动时客户端怎么重连、Broker 重启后会话在不在、订阅关系在断线后要不要恢复。这些在动手环节里比死记协议字段更值得花时间。
看完应该能回答这几个问题
- 一条 PUBLISH 报文从客户端发出到被另一个客户端收到,中间经过了哪些环节?
- QoS1 和 QoS2 在协议层面差在哪,为什么说它们"至少一次"和"恰好一次"?
- 主题里的通配符有哪些,各自的匹配规则和使用限制是什么?
- 客户端断线重连后,之前的订阅和未确认的消息会怎样?
- 遗嘱消息和保留消息分别解决什么场景的问题?
能把这些说清楚,再拿任何一门语言的 MQTT 库来用,心里就有底了。这门课的价值不在于让你多记几个 API,而是让你在设备连不上云、消息莫名丢失的时候,知道该从哪一层去查。
尚硅谷嵌入式技术MQTT|视频|笔记|大纲
MQTT协议深度解析与实践
编辑点评
系统讲解MQTT协议原理和应用,涵盖EMQX搭建、协议报文解析、QoS机制、主题订阅等,适合对物联网协议感兴趣的学习者。
⭐ 编辑推荐
全面解析MQTT协议,从入门到实战,助你掌握物联网通信核心技术。
课程亮点
课程目录
尚硅谷嵌入式技术MQTT 视频 笔记.zip [0.6MB] 大纲.zip [0.2MB] 代码.zip [27.9MB] 课件.zip [6.9MB] 资料.zip [260.3MB] 01-MQTT视频简介.mp4 [39.7MB] 02-MQTT课程概览.mp4 [117.8MB] 03-MQTT入门案例-EMQX简介.mp4 [21.7MB] 04-MQTT入门案例-EMQX环境搭建.mp4 [44.8MB] 05-MQTTX简介.mp4 [8.9MB] 06-MQTT协议的应用场景以及特点和常见的概念.mp4 [47.9MB] 07-MQTTX客户端工具的使用.mp4 [92.6MB] 08-MQTT协议的控制报文简介以及常见的报文类型说明.mp4 [28.1MB] 09-MQTT报文格式-简介.mp4 [20.5MB] 10-MQTT报文格式-固定报头简介.mp4 [37.5MB] 11-MQTT报文格式-可变报头以及有效载荷介绍.mp4 [48.2MB] 12-MQTT报文验证-Wireshark工具抓取通讯报文数据.mp4 [50.0MB] 13-QOS简介.mp4 [54.4MB] 14-Qos取值为0的底层通讯原理以及消息丢失原因说明.mp4 [20.7MB] 15-Qos取值为1的底层通讯原理.mp4 [21.2MB] 16-Qos取值为1消息重复原因说明.mp4 [23.4MB] 17-Qos取值为2的底层通讯原理说明.mp4 [43.2MB] 18-Qos取值为2保证消息不丢失原因说明以及Qos取值为1出现消息重复问题说明.mp4 [46.8MB] 19-Qos取值为2的为什么可以保证消息不重复原因说明.mp4 [32.7MB] 20-Qos常见取值的应用场景.mp4 [24.1MB] 21-主题详解-主题介绍.mp4 [8.3MB] 22-主题详解-主题通配符+号.mp4 [14.5MB] 23-主题详解-主题通配符号.mp4 [16.1MB] 24-主题详解-系统主题.mp4 [40.4MB] 25-会话介绍.mp4 [31.9MB] 26-消息详解-保留消息的介绍.mp4 [16.5MB] 27-消息详解-保留消息的使用.mp4 [42.2MB] 28-消息讲解-消息过期间隔的基本介绍.mp4 [32.7MB] 29-消息详解-消息过期间隔的特点演示.mp4 [8.8MB] 30-消息详解-遗嘱消息的基本介绍.mp4 [13.9MB] 31-消息详解-遗嘱消息的原理介绍.mp4 [24.3MB] 32-消息详解-遗嘱消息的使用演示.mp4 [8.7MB] 33-消息详解-延迟发布的基本介绍.mp4 [23.3MB] 34-消息详解-延迟发布的功能演示.mp4 [8.3MB] 35-消息详解-用户属性基本介绍以及演示.mp4 [13.0MB] 36-订阅详解-订阅选项的基本介绍.mp4 [10.1MB] 37-订阅详解-订阅选项QoS介绍以及演示.mp4 [15.0MB] 38-订阅详解-订阅选项No Local介绍以及演示.mp4 [26.3MB] 39-订阅详解-订阅选项Retain As Published介绍.mp4 [11.8MB] 40-订阅详解-订阅选项Retain As Published演示.mp4 [6.0MB] 41-订阅详解-订阅选项Retain Handling介绍以及演示.mp4 [17.3MB] 42-订阅详解-共享订阅介绍.mp4 [19.5MB] 43-订阅详解-共享订阅分类介绍.mp4 [20.5MB] 44-订阅详解-共享订阅演示.mp4 [20.4MB] 45-订阅详解-共享订阅负载均衡算法介绍.mp4 [15.4MB] 46-订阅详解-排它订阅演示.mp4 [22.1MB] 47-订阅详解-自动订阅演示.mp4 [11.5MB] 48-MQTT Dashboard之访问控制-认证介绍以及演示1.mp4 [23.6MB] 49-MQTT Dashboard之访问控制-认证演示2数据库环境搭建.mp4 [29.6MB] 50-MQTT Dashboard之访问控制-认证演示3认证器链.mp4 [14.0MB] 51-MQTT Dashboard之访问控制-授权介绍.mp4 [9.5MB] 52-MQTT Dashboard之访问控制-ACL文件授权配置.mp4 [22.9MB] 53-MQTT Dashboard之访问控制-内置数据库授权配置.mp4 [21.8MB] 54-MQTT Dashboard之黑名单功能.mp4 [12.6MB] 55-MQTT Dashboard之链接抖动检查.mp4 [9.9MB] 56-MQTT Dashboard之数据集成-数据集成概述.mp4 [21.8MB] 57-MQTT Dashboard之数据集成-工作原理介绍Sink和Source连接器.mp4 [13.7MB] 58-MQTT Dashboard之数据集成-工作原理介绍规则引擎.mp4 [12.7MB] 59-MQTT Dashboard之数据集成-入门案例演示.mp4 [21.6MB] 60-MQTT Dashboard之数据集成-连接器案例一Redis环境搭建.mp4 [29.8MB] 61-MQTT Dashboard之数据集成-连接器案例一Redis连接器使用.mp4 [29.4MB] 62-MQTT Dashboard之数据集成-连接器案例二Kafka环境准备.mp4 [44.4MB] 63-MQTT Dashboard之数据集成-连接器案例二Kafka连接器使用.mp4 [16.9MB] 64-MQTT Dashboard之数据集成-连接器案例二发送消息到Kafka中.mp4 [45.2MB] 65-MQTT Dashboard之数据集成-SQL语法FROMSELECT 和 WHERE 子句.mp4 [26.2MB] 66-MQTT Dashboard之数据集成-SQL语法FOREACHDO 和 INCASE 子句语法介绍.mp4 [14.9MB] 67-MQTT Dashboard之数据集成-SQL语法FOREACH字句使用.mp4 [18.0MB] 68-MQTT Dashboard之数据集成-SQL语法DO子句使用.mp4 [10.6MB] 69-MQTT Dashboard之数据集成-SQL语法INCASE子句使用.mp4 [19.7MB] 70-MQTT Dashboard之数据集成-SQL语法CASE WHEN子句使用.mp4 [13.9MB] 71-MQTT Dashboard之数据集成-SQL函数使用.mp4 [22.4MB] 72-MQTT Dashboard之数据集成-WebHook功能使用.mp4 [20.5MB] 73-MQTT Dashboard之日志管理-日志介绍.mp4 [13.2MB] 74-MQTT Dashboard之日志管理-日志配置.mp4 [53.4MB] 75-MQTT客户端编程之VUE-前端项目环境搭建.mp4 [26.2MB] 76-MQTT客户端编程之VUE-链接建立表单参数绑定.mp4 [34.5MB] 77-MQTT客户端编程之VUE-建立链接和断开连接.mp4 [56.0MB] 78-MQTT客户端编程之VUE-订阅主题.mp4 [46.9MB] 79-MQTT客户端编程之VUE-取消订阅.mp4 [43.8MB] 80-MQTT客户端编程之VUE-发送消息.mp4 [36.6MB] 81-MQTT客户端编程之Java-链接建立.mp4 [43.2MB] 82-MQTT客户端编程之Java-发送消息.mp4 [26.9MB] 83-MQTT客户端编程之Java-订阅主题.mp4 [36.3MB] 84-MQTT客户端编程之spring-integration-mqtt-环境搭建.mp4 [38.3MB] 85-MQTT客户端编程之spring-integration-mqtt-链接工厂配置.mp4 [23.5MB] 86-MQTT客户端编程之spring-integration-mqtt-订阅主题以及接收消息.mp4 [84.6MB] 87-MQTT客户端编程之spring-integration-mqtt-发送消息之出站消息处理器配置.mp4 [34.3MB] 88-MQTT客户端编程之spring-integration-mqtt-发送消息之消息网关配置.mp4 [39.8MB] 89-智能灯泡案例需求介绍以及数据库环境准备.mp4 [18.5MB] 90-智能灯泡案例项目基础环境搭建.mp4 [29.0MB] 91-智能灯泡案例需求1实现.mp4 [128.8MB] 92-智能灯泡案例需求2实现.mp4 [64.3MB] 93-智能灯泡案例需求3实现.mp4 [106.9MB]
适合人群
- 物联网开发者
- 嵌入式系统工程师
- 对MQTT协议感兴趣的学习者
学习收获
祝您学习愉快!
学有所成,前程似锦!






