From 1d23f7b835ec6714cda248981e642c48fc551dce Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 7 Oct 2022 23:25:39 +0200 Subject: transport works. --- client-native-lib/src/instance.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'client-native-lib/src/instance.rs') diff --git a/client-native-lib/src/instance.rs b/client-native-lib/src/instance.rs index b3688c3..cd720f1 100644 --- a/client-native-lib/src/instance.rs +++ b/client-native-lib/src/instance.rs @@ -18,7 +18,7 @@ use tokio::sync::RwLock; use webrtc::api::API; pub struct Instance { - pub event_handler: Box, + pub event_handler: Arc, pub conn: SignalingConnection, pub config: Config, pub api: API, @@ -28,7 +28,7 @@ pub struct Instance { pub peers: RwLock>>, } impl Instance { - pub async fn new(config: Config, event_handler: Box) -> Arc { + pub async fn new(config: Config, event_handler: Arc) -> Arc { let conn = signaling::SignalingConnection::new(&config.signaling_uri, &config.secret).await; let key = crypto::Key::derive(&config.secret); @@ -72,16 +72,13 @@ impl Instance { username: self.config.username.clone(), }) .await; + self.event_handler.peer_join(peer).await; } } protocol::ClientboundPacket::ClientLeave { id } => { - self.peers - .write() - .await - .remove(&id) - .unwrap() - .on_leave() - .await; + let peer = self.peers.write().await.remove(&id).unwrap(); + peer.on_leave().await; + self.event_handler.peer_leave(peer).await; } protocol::ClientboundPacket::Message { sender, message } => { let message = self.key.decrypt(&message); -- cgit v1.2.3-70-g09d2