qt-mqtt非官方库的安装教程

GitHub - emqx/qmqtt: MQTT client for Qt

1.安装5.多版本的qt

2.在gethub下载;

GitHub - emqx/qmqtt: MQTT client for Qt

3.进行安装qt creator即可

3.路径自己定义

4.移植文件

1.

2. 

3. 

 4

 (3)测试

  1. 在Qt Creator中创建一个新项目
  2. 选择“Qt Console Application”或“Qt Widget Application”
  3. 在.pro文件中添加以下行:
QT += qmqtt

  1. 在代码中包含MQTT头文件:
#include "mqtt/qmqtt.h"

2.建一个MQTT客户端对象,并连接到MQTT服务器:

QMQTT::Client *client = new QMQTT::Client(QHostAddress("localhost"), 1883);
client->connectToHost();

3.信号与槽:

//          connect(mqttClient,SIGNAL(received(QMQTT::Message&message)),this,
//            SLOT(receivedMessage(QMQTT::Message& message)));
           


    connect(mqttClient,&QMQTT::Client::connected,this,&HomeWindow::handleConnect);
    connect(mqttClient,&QMQTT::Client::received,this,&HomeWindow::receivedMessage);
    connect(mqttClient,&QMQTT::Client::subscribed,this,&HomeWindow::handleSubcribe);
    connect(mqttClient,&QMQTT::Client::published,this,&HomeWindow::handlePublish);

发布消息:


void HomeWindow::handlePublish(const QMQTT::Message &message, quint16 msgid)
{
    ui->mqttMessageText->append("成功发布消息:  "+message.payload()+"\r\n");
}


void HomeWindow::on_publishPB_clicked()
{
    QString msgplayload = ui->mqttMessageText->toPlainText().trimmed();
    QString topic = ui->publishText->text().trimmed();
    QMQTT::Message *msg = new QMQTT::Message();
    msg->setPayload(msgplayload.toLatin1());
    msg->setTopic(topic);
    mqttClient->publish(*msg);
}
  1. 订阅主题:
void HomeWindow::on_subcribePB_clicked()
{
    QString topic = ui->subcribeText->text().trimmed();
    if (topic.isEmpty()){
        QMessageBox::information(this,"tip","主题不能为空!");
    }
    else{
        mqttClient->subscribe(topic);
    }

}

//接收订阅主题的信息
void HomeWindow::receivedMessage(const QMQTT::Message& message)
{
    QByteArray playload = message.payload();
    qDebug()<< playload;
    ui->mqttMessageText->append("收到主题 "+message.topic()+" 消息"+" "+playload+"\r\n");
}

​​​​​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值