From 309d3a84547447f3a4139b4e628c43cc245a3d00 Mon Sep 17 00:00:00 2001 From: Dave Hrycyszyn Date: Thu, 6 Jun 2024 13:16:55 +0100 Subject: [PATCH] Only sending socket messages to other clients --- side-watcher/src/main.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/side-watcher/src/main.rs b/side-watcher/src/main.rs index 94ad67a..773f980 100644 --- a/side-watcher/src/main.rs +++ b/side-watcher/src/main.rs @@ -1,6 +1,5 @@ -use std::collections::HashMap; - use simple_websockets::{Event, Responder}; +use std::collections::HashMap; fn main() { let event_hub = simple_websockets::launch(8080).expect("failed to listen on port 8080"); @@ -19,16 +18,15 @@ fn main() { clients.remove(&client_id); } Event::Message(client_id, message) => { - println!( - "Received a message from client #{}: {:?}", - client_id, message - ); - // retrieve this client's `Responder`: - // let responder = clients.get(&client_id).unwrap(); + println!("\nReceived a message from client #{}", client_id); + let all_clients = clients.keys().collect::>(); for client in all_clients { - let other_responder = clients.get(client).unwrap(); - other_responder.send(message.clone()); + if *client != client_id { + println!("Sending message to client #{}", client); + let responder = clients.get(client).unwrap(); + responder.send(message.clone()); + } } } }