基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程

本文章主要总结了采用Qt5.9 的WinGW32作为编译环境,用QMQTT协议连接EMQ代理服务器的一个实例,具体的操作步骤如下:

1.1首先创建一个Widgets工程,然后添加qmqqt的库文件,可以参考我之前写的一篇博客 http://blog.csdn.net/naibozhuan3744/article/details/78816973,添加qmqtt库文件后,在.pro工程会出现如下界面:

基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第1张图片


1.2接着在主界面上添加两个按钮,一个命名为connect,另一个命名为disconnect,如下图所示:
  基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第2张图片


1.3在connect按钮的on_pushButton_clicked槽函数中,添加如下代码:

QHostAddresshost("127.0.0.1");

    quint16port=1883;

    client->setHost(host);//设置EMQ代理服务器IP

    client->setPort(port);//设置EMQ代理服务器端口号

 

    client->setClientId("clientID12");//设置一个客户端ID

    client->setUsername("user");//设置一个客户端用户名

    client->setPassword("password");//设置一个客户端密码

    client->connectToHost();//连接EMQ代理服务器

    client->cleanSession();//清除缓存


1.4在disconnect按钮的on_pushButton_2_clicked槽函数中,添加如下代码:

client->disconnectFromHost();


1.5在当前的mainwindow.cpp文件中,添加如下头文件:

#include"mainwindow.h"

#include"ui_mainwindow.h"

#include

#include"qmqtt.h"

#include


1.6在MainWindow::MainWindow构造函数中,添加如下代码:

MainWindow::MainWindow(QWidget*parent):

    QMainWindow(parent),

    ui(newUi::MainWindow)

{

    ui->setupUi(this);

    client=newQMQTT::Client();//初始化QMQTT客户端指针

}


1.7在mainwindow.h头文件中,加入如下头文件:

#include

#include

#include"qmqtt.h"


1.8在class MainWindow : public QMainWindow中,添加如下代码:

classMainWindow:publicQMainWindow

{

    Q_OBJECT

 

public:

    explicitMainWindow(QWidget*parent=0);

    ~MainWindow();

    QStringtopic;

    QMQTT::Client*client;//创建QMQTT客户端指针

 

privateslots:

    voidon_pushButton_clicked();

 

    voidon_pushButton_2_clicked();

 

private:

    Ui::MainWindow*ui;

};


1.9程序重新构建和运行后,结果如下图所示:

 基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第3张图片


基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第4张图片 

没有点击connect按钮的结果图


  基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第5张图片
点击【connect】按钮,并且刷新EMQ的网页页面后显示的结果图


从上面的结果可以看出,Qt程序的用户名和和EMQ代理服务器的用户名和客户端ID都一样,说明基于Qt5.9的QMQTT协议可以正常连接EMQ代理服务器,如下图所示:

   基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第6张图片

基于Qt5.9的QMQTT协议跟EMQ代理服务器的连接教程_第7张图片



参考内容:
http://blog.csdn.net/lifan1314521/article/details/51353518
http://blog.csdn.net/naibozhuan3744/article/details/78816973
http://blog.csdn.net/yannanxiu/article/details/52703946

你可能感兴趣的:(MQTT协议工程应用)