aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared.rs')
-rw-r--r--src/server/shared.rs35
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());
+ // }
+ // }
+ // }
+}