快速搭建MQTT测试环境,手把手详细教程

文章目录

  • 前言
  • 系统架构
  • 准备工具
    • 代理服务器
    • 客户端
      • 客户端 TEST-1
      • 客户端 TEST-2
  • 验证消息传递
    • 订阅主题
    • 发布主题

前言

大家好,我是麦叔,之前有小伙伴建议出一期如何快速搭建一个MQTT协议的测试环境,这里要合理地使用现有的工具,其实很简单,下面我们开始介绍。

系统架构

通常我们需要这些东西;

  • 一个MQTT代理服务器(Broker),作为MQTT消息的中转;
  • MQTT客户端,可以进行订阅消息(接收),发布消息(发送)

注意:客户端只能接收到已经订阅主题的相关消息,这里如果不清楚,建议把MQTT协议基础再看一下;

我们需要搭建的整体架构如下所示;
架构

准备工具

要快速搭建MQTT测试环境,可以使用以下步骤:

代理服务器

安装代理服务器,MQTT Broker:
选择一个MQTT Broker来搭建测试环境。

常用的MQTT Broker有MosquittoHiveMQEMQ X等。

我们可以根据自己的需求选择其中一个来安装。

本文使用MosquittoWindows系统上进行安装作为示例:

对于Windows系统,从Mosquitto官方网站下载并安装Windows版本。

https://mosquitto.org/download/

下载页面
根据自己的系统进行下载,通常64位的系统下载相应的软件进行安装即可;
我电脑上的安装路径

注意:安装路径按照实际的情况即可;

在当前的路径下创建一个配置文件mosquitto.conf,配置文件输入的内容如下:

listener 1883
protocol mqtt
listener 9005
protocol websockets
allow_anonymous true

log_type notice
log_type websockets
log_type warning
log_type error
log_type information

在当前路径下打开dos或者powershell,输入指令

mosquitto -c mosquitto.conf

代理服务器开始运行;
开始运行

客户端

客户端MQTT Client我们也可以用现成的工具,本文使用MQTT X,如下所示;


下载地址:

https://mqttx.app/downloads

选择适合自己系统的版本,进行安装即可;

打开软件并添加会话
通常,有几个参数需要进行配置;

  • Client ID:客户端的ID,这里需要保证唯一性;
  • 代理服务器地址:按照实际的地址进行填写,默认的监听端口号为1883;
  • MQTT版本:默认一般为V3.1.1

注意:如果这里不是很清楚,建议再看一下MQTT协议基础;

客户端 TEST-1

客户端 TEST-1

配置完进行连接,可以看到代理服务器上已经有日志提示新的客户端连接,并且client idTEST-1

客户端 TEST-2

同理再打开一个MQTT X并且配置新的客户端为TEST-2
客户端TEST-2的配置

TEST-2成功连接

验证消息传递

订阅主题

客户端 TEST-1 订阅主题 TEST/A,从客户端TEST-2接收MQTT消息,如下所示;

发布主题

客户端 TEST-1 发布主题 TEST/A,Payload为hello world,具体如下所示;

以上结果证明可以正常进行消息传递。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/63104.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu18.04安装docker及docker基本命令的使用

官网安装步骤:https://docs.docker.com/desktop/install/ubuntu/ docker快速入门教程 Ubuntu-Docker安装和使用 docker官网 docker-hub仓库 1、常用指令 (1)镜像操作 # ############################# 以nginx为例 docker images docker p…

五分钟帮您理解Linux网络核心知识点——socket和epoll

关于linux网络相关的基础知识点,最热的两个就是socket和epoll,接下来我就用最简单的方式把他俩说清楚便于大家理解! Socket Socket 是一种进程间通信的方法,它允许位于同一主机(计算机)或使用网络连接起来…

Android SystemServer中Service的创建和启动方式(基于Android13)

Android SystemServer创建和启动方式(基于Android13) SystemServer 简介 Android System Server是Android框架的核心组件,运行在system_server进程中,拥有system权限。它在Android系统中扮演重要角色,提供服务管理和通信。 system …

右键文件夹 ------- 打开 vscode的方法

1、右键vscode点击属性 2、这是地址栏,一会复制即可 3、新建一个txt文件,将这个复制进去 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode] "Open with Code" "Icon""D:\\Microsoft VS Code\\Code.exe"[HKE…

人到中年不得已,保温杯里泡枸杞--送程序员

目录 一:你现在身体的体能状况如何?你有身体焦虑吗? 二:如何保持规律性运动? 三:你有哪些健康生活的好习惯? 大厂裁员,称35岁以后体能下滑,无法继续高效率地完成工作&…

【数据结构OJ题】删除有序数组中的重复项

原题链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 用双指针算法,定义两个变量src和dst,一开始让src和dst指向num[ ]数组的第一个元素&a…

Java注解详细介绍

Java注解详细介绍 基于注解(Annotation-based)的Java开发无疑是最新的开发趋势.[译者注: 这是05年的文章,在2014年,毫无疑问,多人合作的开发,使用注解变成很好的合作方式,相互之间的影响和耦合可以很低]. 基于注解的开发将Java开发人员从繁琐笨重的配置文件中解脱出来. Java 5…

hacksudo3 通关详解

环境配置 一开始桥接错网卡了 搞了半天 改回来就行了 信息收集 漏洞发现 扫个目录 大概看了一眼没什么有用的信息 然后对着login.php跑了一下弱口令 sqlmap 都没跑出来 那么利用点应该不在这 考虑到之前有过dirsearch字典太小扫不到东西的经历 换个gobuster扫一下 先看看g…

自然语言处理:长文本场景下的关键词抽取实践

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型…

HBase-读流程

创建连接同写流程。 (1)读取本地缓存中的Meta表信息;(第一次启动客户端为空) (2)向ZK发起读取Meta表所在位置的请求; (3)ZK正常返回Meta表所在位置&#x…

SpringBoot使用@Autowired将实现类注入到List或者Map集合中

前言 最近看到RuoYi-Vue-Plus翻译功能 Translation的翻译模块配置类TranslationConfig,其中有一个注入TranslationInterface翻译接口实现类的写法让我感到很新颖,但这种写法在Spring 3.0版本以后就已经支持注入List和Map,平时都没有注意到这…

自制免费 SQL 闯关自学网,代码开源!

大家好,我是鱼皮。 相信很多学编程的同学都学习过 SQL 吧?SQL 作为数据库查询语言,实在是太重要了,可以说是程序员、产品经理、数据分析同学的必备技能。 为了帮助大家自学 SQL,这段时间,我一个人做了个 …

ios_base::out和ios::out、ios_base::in和ios::in、ios_base::app和ios::app等之间有什么区别吗?

2023年8月2日,周三晚上 今天我看到了这样的两行代码: std::ofstream file("example.txt", std::ios_base::out);std::ofstream file("example.txt", std::ios::out);这让我产生了几个疑问: 为什么有时候用ios_base::o…

智慧城市规划新引擎:探秘数字孪生中的二维与三维GIS技术差异

智慧城市作为人类社会发展的新阶段,正日益引领着我们迈向数字化未来的时代。在智慧城市的建设过程中,地理信息系统(GIS)扮演着举足轻重的角色。而在GIS的发展中,二维和三维GIS作为两大核心技术,在城市规划与…

C#使用libmodbus库与工业设备进行读写测试

一.编译libmodbus库供C#使用 如何编译?请移步:https://blog.csdn.net/weixin_42205408/article/details/119530811 上面博主的文章除了所写的modbus.cs内的代码有点问题外(可能上面博主和我的Win 10 64位 Visual Studio 2019平台不一样吧&a…

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…

S系列数字源表为何如此受欢迎?

为什么选择S系列数字源表? 性能强大-作为电压源和或电流源&#xff0c;并同步测量电流和或电压&#xff0c;支持四象限工作。可以限定电压或电流输出大小&#xff0c;预防器件损坏。覆盖3pA-3A的电流范围100μV-300V的电压范围&#xff0c;全量程测量精度0.03%。 灵活多样-支…

数据结构 | 二叉树的应用

目录 一、解析树 二、树的遍历 一、解析树 我们可以用解析树来表示现实世界中像句子或数学表达式这样的构造。 我们可以将((73)*(5-2))这样的数学表达式表示成解析树。这是完全括号表达式&#xff0c;乘法的优先级高于加法和减法&#xff0c;但因为有括号&#xff0c;所以在…

今天面了一个来字节要求月薪24K,明显感觉他背了很多面试题...

最近有朋友去字节面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…

python:isdigit()、isalpha()、isalnum() 三个函数的区别和注意点

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 一、isdigit() python关于 isdigit() 内置函数的官方定义&#xff1a; S.isdigit() -> bool Return True if all characters in S are digitsand there is at least one character in S, False otherwise.翻…