| 66 | } |
| 67 | |
| 68 | async fn user_message(my_id: usize, msg: Message, users: &Users) { |
| 69 | // Skip any non-Text messages... |
| 70 | let msg = if let Ok(s) = msg.to_str() { |
| 71 | s |
| 72 | } else { |
| 73 | return; |
| 74 | }; |
| 75 | |
| 76 | let new_msg = format!("<User#{}>: {}", my_id, msg); |
| 77 | |
| 78 | for (&uid, tx) in users.read().await.iter() { |
| 79 | if my_id != uid { |
| 80 | if let Err(_disconnected) = tx.send(Ok(Message::text(new_msg.clone()))) { |
| 81 | // nothing to do here, `user_disconnected` handles it |
| 82 | } |
| 83 | } |
| 84 | } |
| 85 | } |
| 86 | |
| 87 | async fn user_disconnected(my_id: usize, users: &Users) { |
| 88 | eprintln!("good bye user: {}", my_id); |