1.1首先创建一个Widgets工程,然后添加qmqqt的库文件,可以参考我之前写的一篇博客 http://blog.csdn.net/naibozhuan3744/article/details/78816973,添加qmqtt库文件后,在.pro工程会出现如下界面:
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<QtNetwork>
#include"qmqtt.h"
#include<QHostAddress>
MainWindow::MainWindow(QWidget*parent):
QMainWindow(parent),
ui(newUi::MainWindow)
{
ui->setupUi(this);
client=newQMQTT::Client();//初始化QMQTT客户端指针
}
#include<QMainWindow>
#include<QString>
#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程序重新构建和运行后,结果如下图所示:
从上面的结果可以看出,Qt程序的用户名和和EMQ代理服务器的用户名和客户端ID都一样,说明基于Qt5.9的QMQTT协议可以正常连接EMQ代理服务器,如下图所示:
参考内容:
http://blog.csdn.net/lifan1314521/article/details/51353518
http://blog.csdn.net/naibozhuan3744/article/details/78816973
http://blog.csdn.net/yannanxiu/article/details/52703946