Files
status-monitor/server/src/websocket/mod.rs
csehviktor 81719e5574 cleaup code
2025-07-05 15:55:57 +02:00

24 lines
602 B
Rust

use warp::filters::ws::{Message, WebSocket};
use futures_util::{SinkExt, StreamExt};
use tokio::sync::mpsc::channel;
use std::sync::Arc;
use crate::bridge::ClientManager;
pub mod server;
pub async fn handle_ws_connection(websocket: WebSocket, clients: Arc<ClientManager>) {
let (mut ws_tx, _) = websocket.split();
let (tx, mut rx) = channel::<String>(100);
clients.add_client(tx).await;
tokio::spawn(async move {
while let Some(msg) = rx.recv().await {
if ws_tx.send(Message::text(msg)).await.is_err() {
break;
}
}
});
}