--- server/src/main.rs +++ server/src/main.rs @@ -225,6 +225,20 @@ next_id: AtomicUsize::new(1), }); + let app_state_clone = Arc::clone(&app_state); + let mut rx = state.activity_tx.subscribe(); + tokio::spawn(async move { + while let Ok(msg) = rx.recv().await { + let senders: Vec<_> = app_state_clone + .clients + .read() + .unwrap_or_else(|e| e.into_inner()) + .values() + .cloned() + .collect(); + for client_tx in senders { + let _ = client_tx.try_send(msg.clone()); + } + } + }); + let app = Router::new() .route(