blob: d7ff6c9224b291199c1d9dea1e64878f80b70d52 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
use std::collections::HashMap;
// use std::net::SocketAddr;
use bytes::BytesMut;
use crate::server::Tx;
pub struct Shared {
pub peers: HashMap<String, Tx>,
}
impl Shared {
pub fn new() -> Self {
Shared {
peers: HashMap::new(),
}
}
pub async fn broadcast(&mut self, /* sender: &str, */ message: &[u8]) {
// debug!("peer sent message: {:?}", message);
// debug!("peer count: {}", self.peers.len());
// debug!("peers: {:?}", self.peers);
for peer in self.peers.iter_mut() {
// debug!("peer: {:?}", peer);
// TODO:
// thread 'tokio-runtime-worker' panicked at 'called `Option::unwrap()` on a `None` value'
peer.1.send(BytesMut::from(message)).unwrap();
}
}
// pub async fn broadcast(&mut self, sender: SocketAddr, message: &str) {
// for peer in self.peers.iter_mut() {
// if *peer.0 != sender {
// let _ = peer.1.send(message.into());
// }
// }
// }
}
|