diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-27 19:59:39 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-27 19:59:39 +0100 |
commit | 91259369b2b87eb647e9743c874d7e58894149c1 (patch) | |
tree | c717d3c4fb3322bb559a50eab1a2331f9c351a70 /server | |
parent | 0d8a3082fe32e9dd89deea9f051f6e53df591646 (diff) | |
download | keks-meet-91259369b2b87eb647e9743c874d7e58894149c1.tar keks-meet-91259369b2b87eb647e9743c874d7e58894149c1.tar.bz2 keks-meet-91259369b2b87eb647e9743c874d7e58894149c1.tar.zst |
handle room joins without page reload.
Diffstat (limited to 'server')
-rw-r--r-- | server/src/logic.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/server/src/logic.rs b/server/src/logic.rs index 01b7a82..b16e605 100644 --- a/server/src/logic.rs +++ b/server/src/logic.rs @@ -106,10 +106,9 @@ impl State { ServerboundPacket::Join { hash } => { if let Some(room) = &cstate.current_room { room.leave(self, client).await; - // TODO dont leak room - // if room.should_remove().await { - // self.rooms.write().await.remove(üw); - // } + if room.should_remove().await { + self.rooms.write().await.remove(&room.hash); + } } if let Some(hash) = hash { let room = self @@ -223,10 +222,8 @@ impl Room { pub async fn leave(&self, state: &State, client: Client) { debug!("client leave {client:?}"); for c in self.users.read().await.iter() { - if *c != client { - self.send_to_client(*c, ClientboundPacket::ClientLeave { id: client }) - .await; - } + self.send_to_client(*c, ClientboundPacket::ClientLeave { id: client }) + .await; } let user_count = { let mut g = self.users.write().await; |