-
-
[原创]QT 实现MQTT 协议通信
-
发表于:
2020-5-31 16:46
9334
-
链接
最近作业要求,研究了一下MQTT(只能说是简单的实现了一下),顺便使用QT写了一个测试工具
下面是对每一个功能的详解
QMQTT 是QT 提供的MQTT 依赖,需要进行编译后,加载lib文件(有些说的是.a 文件,但我编译完成后就只有lib 文件,尴尴尬尬)。
教程转:链接
对应方法实现
问题:每次发送消息后,断开连接才另一端才能接受到,尴尴尬尬
原文连接:https://blog.csdn.net/qq_40535097/article/details/106457153
private:
Ui::MainWindow *ui;
QMQTT::Client * client;
private slots:
void onMQTT_Received(const QMQTT::Message &message);
void onMQTT_subscribed(const QString& topic);
client = new Client();
connect(client,SIGNAL(received(const QMQTT::Message&)),this,SLOT(onMQTT_Received(const QMQTT::Message&)));
connect(client,SIGNAL(subscribed(const QString&)),this,SLOT(onMQTT_subscribed(const QString&)));
void MainWindow::onMQTT_Received(const QMQTT::Message &message)
{
// 接受到服务器消息时的处理
QString strPaylaod = message.payload();
//QMessageBox::warning(this,"payload",strPaylaod,QMessageBox::Yes,QMessageBox::No);
QString strLine = ui->textBrowser_msg->toPlainText();
QDateTime dt = QDateTime::currentDateTime();
QString strDate = dt.toString(Qt::SystemLocaleLongDate);//日期格式自定义
strLine += "\n";
strLine += strDate;
strLine += "\n";
strLine += strPaylaod;
ui->textBrowser_msg->setText(strLine);
}
void MainWindow::onMQTT_subscribed(const QString &topic)
{
// 订阅成功后的处理
qDebug() << topic;
QMessageBox::warning(this,"订阅成功",topic,QMessageBox::Yes);
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课