超子说物联网-MQTT_笔记1---通过EMQX搭建MQTT服务器
B站超子说物联网——MQTT视频链接,视频讲解的非常详细👍👍👍
一、教程大纲
1.资料下载地址(百度网盘),提取码:n25a
2.教程内容
- 使用EMQX在自己的电脑上搭建一个MQTT服务器;
- 利用 网络调试助手 + MQTTX 对MQTT v3.1.1协议中的所有报文进行分析;
3.MQTT中文网
4.MQTT版本
- MQTT 目前有 v3.1、 v3.1.1、 v5.0三个版本;
- 3.1 版本(正式首个公开版本),2010 年作为 OASIS 标准发布,定义了标准化的协议结构(如报文格式、QoS 机制、会话管理),但在实际应用中仍暴露以下问题:
- 客户端 ID 长度限制过严(23 字节),无法满足部分场景需求;
- 错误码体系不完整,订阅失败时客户端无法明确原因;
- 未明确 WebSockets 通信方式,跨平台兼容性有限;
- 缺乏对匿名客户端的支持,灵活性不足;
- 3.1.1版本(3.1 的改进版)
- 2014 年发布,针对 3.1 的缺陷进行了系统性优化(如前文所述的 Session Present Flag、错误码扩展、客户端 ID 长度提升等),并成为物联网领域广泛应用的经典版本。
- 5.0版本(重大升级)
- 2019 年发布,在 3.1.1 基础上新增主题别名、共享订阅、消息属性等高级功能,提升协议的灵活性和扩展性 ;
- v5.0在v3.1.1基础之上丰富和扩展了一些功能,但v5.0对服务器和物联网终端设备的开销比v3.1.1大很多,所以目前,v3.1.1使用的较为广泛;
- 3.1 版本(正式首个公开版本),2010 年作为 OASIS 标准发布,定义了标准化的协议结构(如报文格式、QoS 机制、会话管理),但在实际应用中仍暴露以下问题:
- MQTT版本之间的兼容性问题
- v3.1.1兼容v3.1;
- v5.0不兼容v3.1.1(MQTT v5.0的所有报文结构都是重新实现的);
二、MQTT和TCP的关系以及MQTT工作的特点
1.MQTT与TCP的关系
- MQTT是网络模型中应用层的协议;
- TCP 是网络模型中传输层的协议;
- MQTT协议是基于TCP协议的(我们基于EMQX建立的MQTT服务器本质上是一个TCP服务器);
2.MQTT的工作特点
- 在MQTT中,不同客户端的数据交换需要通过服务器进行中转;
- MQTT服务器对不同客户端之间的数据中转是基于Topic(主题)的订阅-发布的方式;
- 例如:客户端A向Topic B中发布数据,服务器只会向订阅Topic B的客户端转发数据;
三、EMQX搭建MQTT服务器,MQTTx、网络调试助手下载
1.EMQX搭建服务器
(1)下载安装Erlang/OTP;
- Erlang/OTP下载链接,需要科学上网,可以在第一章中的资料下载中下载
- 安装
(2)EMQX的下载及解压
- EMQX的下载链接,也可以使用资料中压缩包
- 下载的是一个压缩包,解压压缩包(解压的路径中不能带有中文)
(3)搭建EMQX服务器
-
在上图文件夹中,按住shifit,同时在空白处按鼠标右键------>“在终端中打开”
-
在终端运行" bin\emqx start "
-
在浏览器的地址栏中输入"127.0.0.1:18083",在打开的页面输入默认用户名和密码(admin public)
-
修改登录密码
-
客户端认证
-
创建用户
2.Client ID与UserName、Password的关系
- UserName(用户名)、Password(密码)是用来连接服务器的;
- ClientID使用标识是哪一个连接通道;
- 类似,我们的B站账号登录时,需要输入账号和密码,对应用户名和密码;而我们在手机端和电脑端都可以登录B站,ClientID就类似用来标识我们是在手机端登录还是电脑端登录(两个与客户端不同的连接通道);
3.MQTT客户端软件MQTTX下载
- MQTTX下载链接
- 安装
4.网络调试助手下载(下载后不需要安装,双击即可打开)
- 网络调试助手下载链接