Only sending socket messages to other clients

This commit is contained in:
Dave Hrycyszyn
2024-06-06 13:16:55 +01:00
parent 1c610a9771
commit 309d3a8454

View File

@@ -1,6 +1,5 @@
use std::collections::HashMap;
use simple_websockets::{Event, Responder}; use simple_websockets::{Event, Responder};
use std::collections::HashMap;
fn main() { fn main() {
let event_hub = simple_websockets::launch(8080).expect("failed to listen on port 8080"); let event_hub = simple_websockets::launch(8080).expect("failed to listen on port 8080");
@@ -19,16 +18,15 @@ fn main() {
clients.remove(&client_id); clients.remove(&client_id);
} }
Event::Message(client_id, message) => { Event::Message(client_id, message) => {
println!( println!("\nReceived a message from client #{}", client_id);
"Received a message from client #{}: {:?}",
client_id, message
);
// retrieve this client's `Responder`:
// let responder = clients.get(&client_id).unwrap();
let all_clients = clients.keys().collect::<Vec<_>>(); let all_clients = clients.keys().collect::<Vec<_>>();
for client in all_clients { for client in all_clients {
let other_responder = clients.get(client).unwrap(); if *client != client_id {
other_responder.send(message.clone()); println!("Sending message to client #{}", client);
let responder = clients.get(client).unwrap();
responder.send(message.clone());
}
} }
} }
} }