Implement websocket events.

See https://trello.com/c/xjQeLsd4/19-websocket-notification-portal-%F0%9F%94%94
This commit is contained in:
Paul Makles
2020-02-08 17:19:22 +00:00
parent 4f6850b2d0
commit 4b31533320
2 changed files with 70 additions and 17 deletions

View File

@@ -147,15 +147,25 @@ pub fn launch_server() {
pub fn send_message(id: String, message: String) -> std::result::Result<(), ()> {
unsafe {
let map = CLIENTS.get().unwrap().read().unwrap();
let arr = map.get(&id).unwrap();
if map.contains_key(&id) {
let arr = map.get(&id).unwrap();
Ok(for item in arr {
match item.out.send(message.clone()) {
Ok(_) => (),
Err(_) => {
for item in arr {
if let Err(_) = item.out.send(message.clone()) {
return Err(());
}
}
})
}
Ok(())
}
}
// ! TODO: WRITE THREADED QUEUE SYSTEM
// ! FETCH RECIPIENTS HERE INSTEAD OF IN METHOD
pub fn queue_message(ids: Vec<String>, message: String) {
for id in ids {
send_message(id, message.clone()).expect("uhhhhhhhhhh can i get uhhhhhhhhhhhhhhhhhh mcdonald cheese burger with fries");
}
}