当前位置: 首页 > java >正文

超子说物联网-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;

  • 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.网络调试助手下载(下载后不需要安装,双击即可打开)

  • 网络调试助手下载链接
    在这里插入图片描述
    在这里插入图片描述
http://www.xdnf.cn/news/14293.html

相关文章:

  • springboot项目启动报错:spring boot application in default package
  • React条件渲染之逻辑与和逻辑或详解
  • 第19篇:数据库中间件中的 SQL 分析与审计机制设计
  • 嵌入式硬件篇---常见电平标准
  • 【MPC】模型预测控制笔记 (3):无约束输出反馈MPC
  • flutter 项目配置Gradle下载代理
  • 以太网交换机交换表的建立
  • 使用VSCode开发FastAPI指南(二)
  • Kubernetes (K8S) 系统学习规划
  • 分布式数据库中间件-Sharding-JDBC
  • 性能优化 - 高级进阶: Spring Boot服务性能优化
  • C#设计模式之AbstractFactory_抽象工厂_对象创建新模式-学习
  • leetcode23-合并K个升序链表
  • Docker + PyFlink1.17 数据写入 MySQL
  • 技术选型指南:如何选择更适合项目的开源语言及其生态系统
  • ESP32 005 MicroPython I2S 实现音频传输与播放
  • 【数据可视化】Pyecharts-家乡地图
  • 从0开始学习语言模型--Day02-如何最大化利用硬件
  • Python OpenCV 4.10 库详解
  • 中科院医学1区Top:解放军医学院利用多组学+网络药理学+转录组测序联合解析苗药七角生白胶囊抗白细胞减少症的分子机制
  • AORSA编译指南
  • 探索niri:让你的Linux桌面布局无拘无束
  • HTTP 协议里15种请求方法及示例
  • 无监督 vs 有监督的本质区别
  • 数据赋能(256)——数据赋能业务——产品和服务变现
  • Linux 命令:source 用法详解与直接执行脚本的区别
  • 2.7 Conan简单使用
  • open GL 和 vulkan
  • Docker容器中运行OpenMPI并行程序, 参数调优
  • 嵌入式学习笔记 - HAL库对外设的封装