超子说物联网-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使用的较为广泛
  • 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;

(2)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下载

4.网络调试助手下载(下载后不需要安装,双击即可打开)

相关推荐
nnerddboy13 分钟前
QT(c++)开发自学笔记:1.串口
c++·笔记·qt
Madison-No71 小时前
【Linux】基础开发工具---yum / apt
linux·运维·服务器
岑梓铭1 小时前
计算机网络第四章(10)——网络层《路由算法+路由协议》
网络·笔记·计算机网络·考研·智能路由器·408
YongCheng_Liang1 小时前
网络工程师笔记10-BGP协议
运维·网络·笔记
玉树临风江流儿2 小时前
Cmake使用CPack实现打包
java·服务器·前端
JJJJ_iii2 小时前
【深度学习04】PyTorch:损失函数、优化器、模型微调、保存与加载
人工智能·pytorch·笔记·python·深度学习·机器学习
迎風吹頭髮2 小时前
UNIX下C语言编程与实践39-UNIX 定时器:alarm 函数与 setitimer 函数的使用与对比
服务器·c语言·unix
名誉寒冰2 小时前
# 深入理解Linux内核与用户态通信:Netlink机制实战
linux·服务器·windows
lingggggaaaa2 小时前
小迪安全v2023学习笔记(九十七天)—— 云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
java·笔记·学习·安全·网络安全·云原生·kubernetes
十安_数学好题速析2 小时前
系数调整:四项平方和的最小值攻略
笔记·学习·高考