需要的软件:Mosquitto搭建本地服务器    Mqttfx用于测试本地服务器    qt的客户端demo

下载后安装,新建一个安装的文件夹,不要有英文路径即可,记住自己的安装路径!


一、mosquitto的安装和运行


Mosquitto运行可以参考:MQTT | Windows + mosquitto搭建MQTT Broker(本地服务器)与MQTTX客户端联调

启动 Windows Powershell,如果安装的不是在C盘,则输入如:E:回车进行盘切换,cd指令,进入到安装路径下,找到mosquitto文件夹,如下图:

activemq mqtt服务搭建_c++

如果运行下面代码报错,或者如我上述一样的情况,这总情况就是端口被占用了,杀死占用端口的进程即可。 

.\mosquitto -c .\mosquitto.conf -v

 或者在通过“服务”去打开Mosquitto失败或者报错应该是1883端口被占用了,在window搜索框下,搜windows PowerShell,输入 :netstat -ano | findstr 1883

activemq mqtt服务搭建_物联网_02

activemq mqtt服务搭建_c++_03

杀掉进程命令:taskkill /pid 22080 /f  

这里的pid 后面跟的数字,就是你上述指令查到的LISTENING后面的数字,杀掉再重新通过

.\mosquitto -c .\mosquitto.conf -v命令启动。

成功后会显示:mosquitto version xxx.xx.x running

如:

activemq mqtt服务搭建_activemq mqtt服务搭建_04



二、mqttfx连接本地服务器

 安装mqttfx,不要有英文路径。

查询本地IP,在windows搜索框输入cmd,输入 ipconfig 可以看到自己使用的IPv4地址。

 打开mqttfx软件

activemq mqtt服务搭建_本地服务_05

activemq mqtt服务搭建_物联网_06

这里的ip输入自己刚刚通过ipconfig得到的Ip地址! 

完成上述后,点击connect:

activemq mqtt服务搭建_activemq mqtt服务搭建_07

activemq mqtt服务搭建_本地服务_08

注意!!!现在打开之前运行Windows PowerShell界面,连接了应该如下图:

activemq mqtt服务搭建_qt5_09

接下来测试mqttfx的订阅和发布

 

activemq mqtt服务搭建_qt5_10

activemq mqtt服务搭建_物联网_11

点击publish页面的mytopic旁边的publish,观察订阅页面的情况

activemq mqtt服务搭建_activemq mqtt服务搭建_12

 证明环境没问题了,也可以从终端观察到,每次发布和转发消息的情况:

activemq mqtt服务搭建_物联网_13



三、qt的mqtt动态库的编译

 从github下载官方提供的自己对应版本的mqtt版本:

activemq mqtt服务搭建_qt5_14

注意事项:1选自己正确的版本 2确保有.pro文件的存在!

后续可以参考:QT 配置 MQTT(官方库)

参考上述链接的过程中,要注意:复制粘贴的时候,一定要注意,仅复制.h文件!

四、移植qtmqtt测试的demo进行测试

下载资源:qt的客户端demo

activemq mqtt服务搭建_本地服务_15

1、删掉.pro.user文件夹

2、include 和lib从自己刚刚编译的文件夹下拷贝过来



五、测试效果

终端效果如下:有时候连接不上是mosquitto结束了,重启就可以了。

activemq mqtt服务搭建_qt5_16

MQTT.fx页面如下:

activemq mqtt服务搭建_物联网_17

QT客户端demo运行情况如下:

activemq mqtt服务搭建_本地服务_18

完结~~



六、感谢提供demo和方法的各位