added rooms message implementation

main
Kyle Johnsen 2022-01-20 00:13:26 -05:00
parent af9d77e0cd
commit e35ec560d4
1 changed files with 21 additions and 1 deletions

View File

@ -75,8 +75,28 @@ fn read_login_message(stream: &mut TcpStream, client: &Arc<Client>) {
client.sender.send(write_buf).unwrap(); client.sender.send(write_buf).unwrap();
} }
fn read_rooms_message(_stream: &mut TcpStream, mut _client: &Arc<Client>){ fn read_rooms_message(_stream: &mut TcpStream, mut client: &Arc<Client>){
println!("Got rooms message");
let mut write_buf = vec![];
write_buf.push(1u8);
//first we need to get the room names
let rooms = client.rooms_mutex.read().unwrap();
let mut rooms_vec = vec![];
for (k,v) in rooms.iter() {
let clients = v.clients.read().unwrap();
let room_string = format!("{}:{}",k,clients.len());
rooms_vec.push(room_string);
}
let rooms_message = rooms_vec.join(",");
let message_bytes = rooms_message.as_bytes();
let message_len = message_bytes.len() as u32;
write_buf.extend_from_slice(&(message_len).to_be_bytes());
write_buf.extend_from_slice(message_bytes);
client.sender.send(write_buf).unwrap();
} }
fn send_client_master_message(to: &Arc<Client>, master_id: u32){ fn send_client_master_message(to: &Arc<Client>, master_id: u32){