connection error

This commit is contained in:
Dimitrios Kouros
2026-08-15 17:16:56 +03:00
parent b0b5392e1f
commit 9c2fe39ffd
+28 -12
View File
@@ -15,6 +15,7 @@ const METEO_MUNICH_API_URL: &str =
const LATITUDE_MUC: f64 = 48.163142; const LATITUDE_MUC: f64 = 48.163142;
const LONGITUDE_MUC: f64 = 11.542922; const LONGITUDE_MUC: f64 = 11.542922;
const PUBLISH_COUNT: i32 = 5; const PUBLISH_COUNT: i32 = 5;
const MQTT_TIMEOUT: Duration = Duration::from_secs(10);
#[tokio::main(flavor = "current_thread")] #[tokio::main(flavor = "current_thread")]
async fn main() { async fn main() {
@@ -26,21 +27,36 @@ async fn main() {
task::spawn(async move { task::spawn(async move {
publish(client.clone(), &weather).await; publish(client.clone(), &weather).await;
}); });
println!("test{}", 100); println!("{}", 100);
let mut count = 0;
loop { let poll_result = time::timeout(MQTT_TIMEOUT, async {
let event = eventloop.poll().await; let mut count = 0;
match &event { let mut err_count = 0;
Ok(_) => { loop {
if count == PUBLISH_COUNT * 2 { let event = eventloop.poll().await;
break; match &event {
Ok(_) => {
if count >= PUBLISH_COUNT * 2 {
break;
}
count += 1;
}
Err(e) => {
println!("MQTT Error = {e:?}");
err_count += 1;
if err_count >= 5 {
eprintln!("Exiting MQTT loop after 5 consecutive errors.");
break;
}
time::sleep(Duration::from_millis(200)).await;
} }
count += 1;
}
Err(e) => {
println!("Error = {e:?}");
} }
} }
})
.await;
if poll_result.is_err() {
eprintln!("Timed out waiting for MQTT publishing to complete.");
} }
} }
Err(e) => { Err(e) => {