MQTT协议
创始人
2024-02-22 14:16:52

1.MQTT基础知识学习

MQTT协议基础知识视频学习资源:太极创客

在这里插入图片描述

太极创客的MQTT基础篇博文目录链接:零基础入门学用物联网 – MQTT基础篇 – 目录

在这里插入图片描述

备注:建议先学习一下MQTT的基础知识后再学习下面章节部分的内容。

2.MQTT服务器的搭建

MQTT服务器的搭建步骤如下:

  • 使用docker pull emqx 下载emqx (使用emqx 搭建MQTT服务器)

在这里插入图片描述

  • 查看一下emqx 的镜像文件docker images

在这里插入图片描述

  • 启动emqx镜像文件 docker run -d --name emqx -p 18084:1883 -p 18085:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx

在这里插入图片描述

备注信息:

–name emqx:容器名为emqx,可自定义
-p 18083:18083:端口映射,web端后台管理页端口,前面一个18083是本机端口,可自定义
-p 18084:1883:端口映射,MQTT TCP端口,前面一个18082是自定义的本机的端口,可自定义
-p 8883:8883:端口映射,MQTT TCP TLS/SSL 端口,前面一个8883可自定义
-p 8083:8083:端口映射,HTTP and WebSocket 端口,前面一个8083可自定义
-p 8084:8084:端口映射,HTTPS and WSS 端口,前面一个8084可自定义

来源于:Docker搭建MQTT服务器

  • 查看启动的镜像

在这里插入图片描述

  • 防火墙放行,我的服务器是租的腾讯云,所以在腾讯云控制台防火墙处分别开启18083;18084;8883;8083;8084端口号截图如下

在这里插入图片描述

下图是放行18083端口的截图,其他端口号按到此步骤放行即可:

在这里插入图片描述

  • 访问http://www.itguye.top:18083/ 其中www.itguye.top为我的主机服务器域名,访问后会进入后台管理端的登入界面

在这里插入图片描述

默认的账号:admin 密码:public,输入账号和密码进行登入,就会进入如下MQ的管理端:

在这里插入图片描述
设置中文的步骤如下:

在这里插入图片描述

3.SpringBoot的测试程序

功能非常的简单就是温度传感器发布了一个主题,该主题会经过MQTT服务器转发给所有订阅该主题的客户端。这里我采用MQTTX软件来模拟温度传感器发布主题,MQTTX的软件与使用可以参照这篇博文:MQTT 图形化客户端-MQTTX安装使用教程。

在这里插入图片描述

创建一个温度传感器的客户端连接:

在这里插入图片描述

利用MQTTX软件发布smartagriculture/data/temperature主题:

在这里插入图片描述

MQTT服务器中可以创建客户端来获取该主题的数据:

  • 建立客户端连接

在这里插入图片描述

  • 订阅主题smartagriculture/data/temperature

在这里插入图片描述

  • 再次利用MQTTX软件客户端发布主题内容,MQTT服务器中的Web Socket订阅的客户端会收到该消息

在这里插入图片描述

接下来我们通过SpringBoot项目来接收客户端发送的温度数据,这里不再自己创建项目了,我在网上找到一个MQTT的Demo,clone一下该项目即可,项目地址https://github.com/CallMeAdong/mqttDemo。

在这里插入图片描述

clone完毕后,用IDEA打开此项目,项目框架如下图所示:

在这里插入图片描述

如果在项目文件中出现下图提示:

在这里插入图片描述

在pom.xml中添加如下依赖即可解决:

  org.springframework.bootspring-boot-configuration-processortrue

接下来修改application-local.properties文件中的MQTT配置信息:

在这里插入图片描述

在MqttSubClient类中修改订阅主题为smartagriculture/#

在这里插入图片描述

运行项目,并使用MQTTX软件发布主题,项目控制台会收到如下图所示的内容:

在这里插入图片描述

MQTTX软件模拟的温度传感器怎么来接受另一个客户端发送来的数据呢,其实很简单只需要温度传感器订阅另一个客户端发起的主题即可。下图的控制类中提供了二个主题接口,访问其中一个接口就会发起一个test.queue的主题。

在这里插入图片描述

使用MQTTX软件订阅该主题,截图如下:

在这里插入图片描述

访问发送主题的接口 http://localhost:8099/mqttDemo/testPublishMessage1,发起主题。

在这里插入图片描述

MQTTX软件就会收到项目发来的主题消息,如下图所示。

在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...