12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include "widget.h"
- #include "ui_widget.h"
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::Widget)
- {
- ui->setupUi(this);
- mqtt = new QMQTT::Client();
- connect(mqtt, &QMQTT::Client::connected, []{
- qDebug()<< "connected";
- });
- connect(mqtt, &QMQTT::Client::disconnected, []{
- qDebug()<< "disconnect";
- });
- connect(mqtt, &QMQTT::Client::received, this, &Widget::onReceived);
- mqtt->setHostName("y.kjxry.cn");
- //mqtt->setHostName("mq.tongxinmao.com"); //18830
- //mqtt->setHostName("www.kjxry.cn");
- mqtt->setPort(port);
- mqtt->setKeepAlive(60);
- mqtt->setClientId("C001"); //唯一id, 相同id不能同时连接
- mqtt->setUsername(userName);
- mqtt->setPassword(password.toUtf8());
- mqtt->setAutoReconnect(true); //开启自动重连
- mqtt->setCleanSession(true); //非持久化连接,上线时,将不再关心之前所有的订阅关系以及离线消息
- mqtt->setVersion(QMQTT::V3_1_1);
- qDebug()<< "ver" << mqtt->version();
- mqtt->connectToHost();
- }
- Widget::~Widget()
- {
- delete ui;
- }
- //接收到的消息
- void Widget::onReceived(const QMQTT::Message& message)
- {
- qDebug() << "recv" << message.topic() << message.payload();
- }
- void Widget::on_pushButton_2_clicked()
- {
- //不同的订阅方式
- //mqtt->subscribe("alarm/led", 1);
- //mqtt->subscribe("+/led", 1);
- mqtt->subscribe("alarm/#", 1);
- }
- void Widget::on_pushButton_3_clicked()
- {
- //QMQTT::Message message(i, EXAMPLE_TOPIC, QString("Number %1").arg(i).toUtf8());
- QMQTT::Message message;
- message.setTopic(topic);
- message.setPayload("test");
- message.setRetain(true); //保留最后一条数据
- mqtt->publish(message);
- }
|