Only sending socket messages to other clients
This commit is contained in:
@@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user