日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Qt MQTT使用

發布時間:2023/12/10 c/c++ 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt MQTT使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、創建對象并綁定信號槽

m_client = new QMqttClient(this); connect(m_client, &QMqttClient::stateChanged, this, &MainWindow::updateLogStateChange); connect(m_client, &QMqttClient::disconnected, this, &MainWindow::brokerDisconnected); connect(m_client, &QMqttClient::connected, this, &MainWindow::brokerConnected); connect(m_client, &QMqttClient::messageReceived, this, &MainWindow::brokerMessageRecvd); connect(m_client, &QMqttClient::pingResponseReceived, this, &MainWindow::brokerPingResponseRecvd);

二、訂閱主題

//do Subsciption auto subscription = m_client->subscribe(QString("sss"), 0); if(!subscription){//failure } else{//success }

三、取消訂閱

//do unSubsciption m_client->unsubscribe(topic);

四、連接服務器

void MainWindow::connectServ() {if (m_client->state() == QMqttClient::Disconnected) {m_client->setHostname(ui->lineEdit_hostip->text());m_client->setPort(ui->lineEdit_hostport->text().toInt());m_client->setUsername(ui->lineEdit_username->text());m_client->setPassword(ui->lineEdit_password->text());m_client->setClientId(ui->lineEdit_clientid->text());m_client->setAutoKeepAlive(true);//mqtt willm_client->setWillTopic(WILLTOPIC);m_client->setWillQoS(1);QString willMessage = ui->lineEdit_clientid->text()+","+ui->lineEdit_username->text()+","+"loginout";m_client->setWillMessage(willMessage.toLatin1());m_client->connectToHost();} }

五、斷開服務器

void MainWindow::disConnectServ() {if (m_client->state() == QMqttClient::Connected){m_client->disconnectFromHost();} }

六、其他槽函數

void MainWindow::updateLogStateChange() {const QString content = QDateTime::currentDateTime().toString()+ QLatin1String(": State Change")+ QString::number(m_client->state())+ QLatin1Char('\n');ui->textEdit->insertPlainText(content); }void MainWindow::brokerDisconnected() {const QString content = QDateTime::currentDateTime().toString()+ QLatin1String(": disconnected\n");ui->textEdit->insertPlainText(content); } void MainWindow::brokerConnected() {const QString content = QDateTime::currentDateTime().toString()+ QLatin1String(": connected\n");ui->textEdit->insertPlainText(content); } void MainWindow::brokerMessageRecvd(const QByteArray &message, const QMqttTopicName &topic) {//insert to log textconst QString content = QDateTime::currentDateTime().toString()+ QLatin1String(" Received Topic: ")+ topic.name()+ QLatin1String(" Message: ")+ message+ QLatin1Char('\n');ui->textEdit->insertPlainText(content); } void MainWindow::brokerPingResponseRecvd() {const QString content = QDateTime::currentDateTime().toString()+ QLatin1String(": pingresponse valid")+ QLatin1Char('\n');ui->textEdit->insertPlainText(content); }

?

總結

以上是生活随笔為你收集整理的Qt MQTT使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。