diff options
| author | Fuwn <[email protected]> | 2021-03-25 22:20:21 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-03-25 22:20:21 +0000 |
| commit | 5fc28bfb2851441893ef2ad5f72e0feb8a0a22cc (patch) | |
| tree | f39b7bccc486298b1b7f4945cad37b4839817b73 /src/server/shared.rs | |
| parent | feature: Byte utilities (diff) | |
| download | whirl-5fc28bfb2851441893ef2ad5f72e0feb8a0a22cc.tar.xz whirl-5fc28bfb2851441893ef2ad5f72e0feb8a0a22cc.zip | |
major: Publish work-in-progress
Diffstat (limited to 'src/server/shared.rs')
| -rw-r--r-- | src/server/shared.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/server/shared.rs b/src/server/shared.rs new file mode 100644 index 0000000..d7ff6c9 --- /dev/null +++ b/src/server/shared.rs @@ -0,0 +1,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()); + // } + // } + // } +} |