From f47240d8e54c70f7b4ffec39c0793c58c1b5a346 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 8 Jul 2024 22:48:35 +0200 Subject: better handle message lag --- server/src/main.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'server/src/main.rs') diff --git a/server/src/main.rs b/server/src/main.rs index 4c6bcc34..27f81fbb 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -77,7 +77,7 @@ async fn run() -> anyhow::Result<()> { let ws_listener = TcpListener::bind("0.0.0.0:27032").await?; info!("listening for websockets on {}", ws_listener.local_addr()?); - let (tx, rx) = broadcast::channel::(1024); + let (tx, rx) = broadcast::channel::(128 * 1024); let state = Arc::new(RwLock::new(State::new(tx).await?)); { @@ -120,11 +120,18 @@ async fn run() -> anyhow::Result<()> { } } loop { - let Some(packet) = tokio::select!( + let packet = match tokio::select!( p = rx.recv() => p.ok(), p = error_rx.recv() => p, - ) else { - break; + ) { + Some(p) => p, + None => { + rx = rx.resubscribe(); + PacketC::ServerMessage { + text: "Lagging behind. Some clientbound packets were dropped." + .to_string(), + } + } }; if let Err(e) = write .send(tokio_tungstenite::tungstenite::Message::Text( -- cgit v1.2.3-70-g09d2