first commit
This commit is contained in:
parent
75addb10ee
commit
679366fa8f
@ -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 {}
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user