MCPcopy Create free account
hub / github.com/actix/examples / join_room

Method join_room

websockets/chat-actorless/src/server.rs:170–189  ·  view source on GitHub ↗

Join room, send disconnect message to old room send join message to new room.

(&mut self, conn_id: ConnId, room: RoomId)

Source from the content-addressed store, hash-verified

168
169 /// Join room, send disconnect message to old room send join message to new room.
170 async fn join_room(&mut self, conn_id: ConnId, room: RoomId) {
171 let mut rooms = Vec::new();
172
173 // remove session from all rooms
174 for (n, sessions) in &mut self.rooms {
175 if sessions.remove(&conn_id) {
176 rooms.push(n.to_owned());
177 }
178 }
179 // send message to other users
180 for room in rooms {
181 self.send_system_message(&room, 0, "Someone disconnected")
182 .await;
183 }
184
185 self.rooms.entry(room.clone()).or_default().insert(conn_id);
186
187 self.send_system_message(&room, conn_id, "Someone connected")
188 .await;
189 }
190
191 pub async fn run(mut self) -> io::Result<()> {
192 while let Some(cmd) = self.cmd_rx.recv().await {

Callers 2

runMethod · 0.45
process_text_msgFunction · 0.45

Calls 2

send_system_messageMethod · 0.80
insertMethod · 0.80

Tested by

no test coverage detected