使用QT官方库实现mqtt客户端

    因为最近一个物联网项目需要实现各终端状态采集及接收管理端控制指令,前期网上综合查了一下,决定采用mqtt协议,服务端采用的是开源的emqtt。客户端是用qt,网上搜来搜去都是的qmqtt这个第三方库:https://github.com/emqtt/qmqtt/。
    后来在官网查了下发现qt官方从5.10开始已经支持mqtt,但是并没有集成到安装版本里。简单研究了一下发现比较简单,把实现过程分享一下:
    1、用git下载官方源文件
    http://code.qt.io/cgit/qt/qtmqtt.git/
    2、编译(构建),中间提示要安装perl。
    3、从编译输出文件夹拷贝lib到项目(2个.a和2个.dll文件即可)
    4、从源文件的src/mqtt目录拷贝所有头文件到项目(因为编译输出下面的include内只是一个到src的连接)
    5、在项目中添加外部库。添加后结果如下:
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/qtmqtt/lib/ -lQt5Mqtt
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/qtmqtt/lib/ -lQt5Mqttd
    else:unix: LIBS += -L$$PWD/qtmqtt/lib/ -lQt5Mqtt
    INCLUDEPATH += $$PWD/qtmqtt/include
    DEPENDPATH += $$PWD/qtmqtt/include
    6、在项目文件中增加network(QT+= core gui network),头文件中包含#include "QMqttClient.h"
    7、编译,在所有编译提示找不到头文件的地方,把#include <QtMqtt/qmqttglobal.h>这种全部修改为#include "qmqttglobal.h"
    8、编译通过。
    附完整源代码(直接编译可用,QT5.10.1 MinGW):

    https://download.csdn.net/download/lostapple/10329950

使用QT官方库实现mqtt客户端