SpringBoot集成MQTT客户端

SpringBoot集成MQTT客户端

本文运行环境:win10、jdk11、springboot 2.7.18

一、消息中间件

下载支持mqtt协议的中间件,市面上许多支持mqtt协议的中间件,比如Mosquitto、RabbitMQ、EMQ X、HiveMQ、ActiveMQ等,本文选择EMQ X 5.3.2。

ps:5.3.2是EMQ X最后一个支持windows的版本。

1.1、下载中间件

下载链接:https://packages.emqx.io/emqx-ce/v5.3.2/emqx-5.3.2-windows-amd64.zip

1.2、启动服务

①下载解压后,进入安装目录.emqx-5.3.2-windows-amd64in,在地址栏输入cmd,执行命令emqx start启动服务。

为了以后方便启动EMQ X服务,可以使用NSSM将EMQ X封装成windows服务。NSSM是一个服务封装程序,它可以将普通exe程序或者.bat文件等封装成windows服务,操作起来也比较简单,有兴趣可以去了解下,这里就不演示了。

在这里插入图片描述

②服务启动后,打开浏览器输入http://127.0.0.1:18083,进入EMQ X后台管理页面。

默认登录账号:admin

默认登录密码:public

在这里插入图片描述

③这里就进入EMQ X后台管理页面了
在这里插入图片描述

1.3、基本设置
1.3.1、配置客户端认证

因为EMQ X默认是没有配置连接用户的,也就是说任何人都可以通过tcp去访问当我们EMQ X服务

①创建客户端认证

访问控制——>客户端任务——>创建

在这里插入图片描述

②选择认证方式

为了演示方便,这里我选择密码认证的方式,选择后,点击下一步

在这里插入图片描述

③选择存储认证数据的数据源

这里也有挺多数据源选择,为了演示方便,这里我选择EMQ X内部的数据库

在这里插入图片描述

④配置参数

账号类型可以选择clientId或者username,两种方式都可以用,其他的默认就行

在这里插入图片描述

⑤新增用户

点击完成后,会出现一条配置信息,点击用户管理,新建连接用户

在这里插入图片描述

⑥添加用户

填写用户名和密码,我把成为超级管理员勾上了,方便我展示,嘻嘻

在这里插入图片描述

⑦这样我们把连接用户建好了咯

在这里插入图片描述

1.3.2、通用配置

这个我就不管了,各位根据需要自行设置

在这里插入图片描述

到此,消息中间件部分就结束咯

二、客户端工具

既然选择了EMQ的EMQ X,那么客户端工具也选择EMQ的MQTTX咯。

下载链接:https://mqttx.app/zh/downloads?os=windows

下载安装完后,打开MQTTX

2.1、配置连接

①这里可以设置中文

在这里插入图片描述

②配置连接

1、服务器地址:因为是本地服务,所以用127.0.0.1

2、端口:默认是1883,我没改,所以是1883

3、Client ID:这个是客户端的唯一标识,就是说这个id是区分连接用户的

4、用户名密码:就是刚刚1.3.1配置的认证用户

5、把自动重连勾掉,因为如果你的连接信息填错,他会一直重连,很烦。

6、填写完后,点击右上角连接

在这里插入图片描述

③这样就连接上咯,再打开EMQ X 后台管理页面,出现了我们配置的连接,客户端id就是刚刚配置的Client ID

在这里插入图片描述

2.2、配置订阅主题

关于topic的配置:

1、主题层级分隔符—“/”

用于分割主题层级

2、单层通配符—“+”

单层通配符只能匹配一层主题

3、多层通配符—“#”

多层通配符,多层通配符可以匹配于多层主题

关于Qos配置:

这个配置是保证消息的可靠性的,

Qos 0:我把一条消息丢给你,我就不管你收到还没没收到。

Qos 1:我把一条消息丢给你,你就要给我回复收到,不然我就一直发。

Qos 2:我把一条消息丢给你,你一定要给我回复一次收到。这里跟Qos 1的区别是,Qos 1可能会让你接收到重复的消息,而Qos 2确保一条消息只被你接收到一次。

描述比较抽象,总之Qos等级越高,对于资源消耗就越高,数据的可靠性也越高,我这里就不过多赘述了。

在这里插入图片描述

订阅好后,我们的EMQ X后台管理页面也出现,哪个客户端订阅了哪个主题。

在这里插入图片描述

2.3、测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值