implemented message sending between users
This commit is contained in:
parent
e0b65fb520
commit
2783c381e0
|
|
@ -81,6 +81,11 @@ impl<Out> Client<Out>
|
|||
self.disconnect().await;
|
||||
return;
|
||||
}
|
||||
Ok(ClientStreamIn::SendMessage { to, content }) => {
|
||||
let _ = self.out_channel.send(
|
||||
ClientMessage::IncomingMessage {from: self.details.uuid, to, content}.into()
|
||||
).await;
|
||||
}
|
||||
Ok(ClientStreamIn::SendGlobalMessage { content }) => {
|
||||
let _ = self.out_channel.send(
|
||||
ClientMessage::IncomingGlobalMessage {from: self.details.uuid, content}.into()
|
||||
|
|
@ -97,6 +102,11 @@ impl<Out> Client<Out>
|
|||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn user_message(&self, from: Uuid, content: String) -> Result<(), Error> {
|
||||
self.connection.write(ClientStreamOut::UserMessage { from, content }).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn disconnect(&self) {
|
||||
let _ = self.out_channel
|
||||
.send(ClientMessage::Disconnect {
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ impl<Out> ClientManager<Out>
|
|||
}
|
||||
|
||||
pub async fn handle_channel(&self, message: Option<ClientMgrMessage>) {
|
||||
use ClientMgrMessage::{Remove, SendClients, BroadcastGlobalMessage};
|
||||
use ClientMgrMessage::{Remove, SendClients, BroadcastGlobalMessage, SendMessage};
|
||||
println!("Handling channel");
|
||||
match message {
|
||||
Some(Remove {id}) => {
|
||||
|
|
@ -156,6 +156,11 @@ impl<Out> ClientManager<Out>
|
|||
});
|
||||
join_all(futures).await;
|
||||
},
|
||||
Some(SendMessage { from, to, content }) => {
|
||||
let lock = self.clients.lock().await;
|
||||
let client = lock.get(&to).unwrap();
|
||||
let _ = client.user_message(from, content).await;
|
||||
},
|
||||
Some(Remove {id}) => {
|
||||
self.clients.lock().await.remove(&id);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue