QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器

第一步:下载mqtt服务器,并部署

这里我选择的mqtt服务器是mosquitto,当然你们也可以用其他的,话不多说,开始!
1.进入mosquitto下载的地址:https://mosquitto.org/download/
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第1张图片
下载完成之后,无脑下一步安装即可。(当然安装路径可以自行修改,自行判断)
2.下载完后配置启动
安装完毕之后,在安装的路径下可以看到该配置文件
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第2张图片
接下来我们开始配置:打开mosquitto.conf
2.1修改监听端口:找到

#listener

取消前面的# 然后指定端口号

listener 9900

2.2设置用户名密码

  • 是否开启匿名用户登录

#allow_anonymous
默认是true,修改为false,不开启匿名用户登录
allow_anonymous false

2.3配置并指定pwfile.example文件路劲,配置用户信息存放位置。

#password_file
修改为:(最好配置绝对路径)
password_file E:\mqtt\pwfile.example

2.4添加用户名密码
打开cmd,切换到之前安装mosquitto的路径下
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第3张图片
运行命令:创建账户:admin的账户
e:/mqtt/pwfile.example是之前配置文件里的路径

mosquitto_passwd.exe -c e:/mqtt/pwfile.example admin

连续输出两次密码,创建成功!
打开文件,可以看到相关的信息
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第4张图片

添加用户:atian的账户(不用加-c,-c是覆盖之前的内容)

mosquitto_passwd.exe e:/mqtt/pwfile.example atian

2.5启动服务
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第5张图片右键启动。
ok完成,接下来开始测试!

3.测试
打开两个cmd窗口,进入到对应安装的目录下,也可以直接配置到环境变量里。
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第6张图片
订阅sensor主题:
mosquitto_sub.exe -h 127.0.0.1 -p 9900 -u admin -P 123456 -v -t topic

发布sensor主题:
mosquitto_pub.exe -h 127.0.0.1 -p 9900 -u admin -P 123456 -t topic -m “hello,mosquitto”

两个窗口运行,上面的测试。(先订阅再发布)

测试成功!
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第7张图片
完成了。

第二步:下载并且编译MQTT

我用的qt版本是5.14.2,找qt版本一致的去下载。
下载地址:https://github.com/qt/qtmqtt/tree/5.14.2
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第8张图片
下载解压后会得到以下这些文件
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第9张图片
接下用qt打开src路径这个,运行编译
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第10张图片
选择MinGW编译器
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第11张图片
然后先执行qmake,再 “构建” 就会得到编译后的文件了

注意:有些小伙伴会遇到找不到qmqttglobal.h之类的头文件什么的,不要慌,这是编译器找不到这些个头文件。
解决方法:在安装qt的路径下加上下载下来的mqtt的头文件,就像下图所示:
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第12张图片
构建完成之后,就得到了以下这些文件
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第13张图片
重要的是lib下的libQt5Mqtt.a,Qt5Mqtt.dll。把他们放到一个lib文件夹里。
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第14张图片
头文件也要拿从下载的src\mqtt里拿出头文件,放到一个include文件夹里。
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第15张图片
好了,已经完成了大半了。
接下来创建自己的mqtt项目,导入之前的lib,include就可以使用了。
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第16张图片
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第17张图片
接下来直接导入,就可以使用了
QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第18张图片
使用文档非常全!
使用文档:https://doc.qt.io/qt-6/qmqttclient.html

使用示例:

QT 使用 mqtt协议,部署mosquitto做为mqtt的服务器_第19张图片

你可能感兴趣的:(服务器,qt)