first commit

This commit is contained in:
cxh 2025-09-10 10:11:18 +08:00
parent 75addb10ee
commit 679366fa8f
2 changed files with 16 additions and 11 deletions

View File

@ -38,6 +38,7 @@ private:
// mqtt::callback 实现
void connection_lost(const std::string &cause) override;
void connected(const std::string &cause) override;
void message_arrived(mqtt::const_message_ptr msg) override;
void delivery_complete(mqtt::delivery_token_ptr token) override {}

View File

@ -37,24 +37,18 @@ void MQTTClient::connect()
.password(config_.password)
.finalize();
auto tok = client_->connect(connOpts); // 异步连接
if (!tok->wait_for(std::chrono::seconds(2))) // 设置超时
{
LOG_WARN("[MQTT] Connect timed out to broker: " + config_.server_ip);
startReconnect();
return;
}
auto tok = client_->connect(connOpts);
tok->wait(); // 阻塞直到连接成功或失败,不用 wait_for(2s)
LOG_INFO("[MQTT] Connected to broker: " + config_.server_ip);
connected_ = true;
reconnect_active_ = false;
if (on_connect_)
on_connect_();
}
catch (const mqtt::exception &e)
{
LOG_ERROR("[MQTT] Connect failed: " + std::string(e.what()));
startReconnect();
// startReconnect();
}
}
@ -158,9 +152,19 @@ void MQTTClient::connection_lost(const std::string &cause)
{
std::lock_guard<std::mutex> lock(mutex_);
connected_ = false;
LOG_WARN("[MQTT] Connection lost: " + cause);
if (on_disconnect_)
on_disconnect_();
startReconnect();
// startReconnect();
}
void MQTTClient::connected(const std::string &cause)
{
std::lock_guard<std::mutex> lock(mutex_);
connected_ = true;
LOG_INFO("[MQTT] Reconnected: " + cause);
if (on_connect_)
on_connect_();
}
void MQTTClient::message_arrived(mqtt::const_message_ptr msg)