diff --git a/client/src/app.rs b/client/src/app.rs index 37fbb52..1eb5154 100644 --- a/client/src/app.rs +++ b/client/src/app.rs @@ -2,6 +2,7 @@ use anyhow::Result; use std::time::Duration; +use std::sync::Arc; use tokio::sync::broadcast; use tokio_stream::{wrappers::BroadcastStream, StreamExt}; use tonic::{transport::Channel, Request}; @@ -262,18 +263,25 @@ impl LesavkaClientApp { if let Some(pkt) = mic_clone.pull() { yield pkt; } else { - break; // EOS – should not happen + break; // EOS (should never happen) } } }; match cli.stream_microphone(Request::new(stream)).await { Ok(mut resp) => { - while resp.get_mut().message().await?.is_some() {} + // Drain the (mostly empty) response stream + while let Some(res) = resp.get_mut().message().await.transpose() { + if let Err(e) = res { + warn!("🎤 server err: {e}"); + break; + } + } } Err(e) => warn!("🎤 connect failed: {e}"), } - tokio::time::sleep(Duration::from_secs(1)).await; + + tokio::time::sleep(Duration::from_secs(1)).await; // retry } } }