qt使用MQTT协议连接阿里云demo
qt使用Mqtt协议连接阿里云。
在配置好qt关于MQTT的环境之后,主要就是根据MQTT的连接参数进行连接即可。
环境配置推荐链接QT编译并部署QtMqtt相关环境+跑测demo【超详细教程】_mqtt qt开发教程-CSDN博客
连接核心代码,主要就是根据阿里云的MQTT相关参数进行配置实现连接。
void MqttClient::mqtt_init() {
// 定义参数
QString productKey = "yours";
QString deviceName = "yours";
QString deviceSecret = "yours";
QMap<QString, QString> params;
params.insert("productKey", productKey);
params.insert("deviceName", deviceName);
params.insert("clientId", clientId);
QString timestamp = QString::number(QDateTime::currentMSecsSinceEpoch());
params.insert("timestamp", timestamp);
// 生成 MQTT Broker 地址
QString host_url = QString("iot-06z00ies461746g.mqtt.iothub.aliyuncs.com");
QString client_id_str = "yours";
// 生成用户名
QString user_name = QString("%1&%2").arg(deviceName).arg(productKey);
// 生成密码
// QString password = sign(params, deviceSecret);
QString password = "yours";
// 设置 MQTT 客户端参数
client->setHostname(host_url); // 设置主机名
client->setPort(1883); // 设置端口号
client->setClientId(client_id_str); // 设置客户端 ID
client->setUsername(user_name); // 设置用户名
client->setPassword(password.toUtf8()); // 设置密码
qDebug() << "Connecting to MQTT broker:" << host_url;
qDebug() << "Client ID:" << client_id_str;
qDebug() << "Username:" << user_name;
qDebug() << "Password:" << password;
// 连接到 MQTT Broker
client->connectToHost();
}