diff options
author | 2025-04-13 16:45:53 +0100 | |
---|---|---|
committer | 2025-04-13 16:45:53 +0100 | |
commit | cf51dcf052af89f8742d887bde2c93d735309bdd (patch) | |
tree | fb7d8b7a313511de845db6cfd186f3b87c472154 /lampada/src/connection/mod.rs | |
parent | 603777c5f4b3f8248378af6fe5af65b54e0f120e (diff) | |
download | luz-cf51dcf052af89f8742d887bde2c93d735309bdd.tar.gz luz-cf51dcf052af89f8742d887bde2c93d735309bdd.tar.bz2 luz-cf51dcf052af89f8742d887bde2c93d735309bdd.zip |
feat(lampada): wasm + websockets support
Diffstat (limited to 'lampada/src/connection/mod.rs')
-rw-r--r-- | lampada/src/connection/mod.rs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lampada/src/connection/mod.rs b/lampada/src/connection/mod.rs index 2d570ae..a3dde16 100644 --- a/lampada/src/connection/mod.rs +++ b/lampada/src/connection/mod.rs @@ -8,7 +8,7 @@ use std::{ }; use jid::JID; -use luz::{connection::Tls, jabber_stream::bound_stream::BoundJabberStream}; +use luz::jabber_stream::bound_stream::BoundJabberStream; use read::{ReadControl, ReadControlHandle, ReadState}; use stanza::{client::Stanza, stream_error::Error as StreamError}; use tokio::{ @@ -86,13 +86,13 @@ impl<Lgc: Logic + Clone + Send + 'static> Supervisor<Lgc> { info!("sent disconnect command"); tokio::select! { _ = async { tokio::join!( - async { let _ = (&mut self.write_control_handle.handle).await; }, - async { let _ = (&mut self.read_control_handle.handle).await; } + // async { let _ = (&mut self.write_control_handle.handle).await; }, + // async { let _ = (&mut self.read_control_handle.handle).await; } ) } => {}, // TODO: config timeout _ = async { tokio::time::sleep(Duration::from_secs(5)) } => { - (&mut self.read_control_handle.handle).abort(); - (&mut self.write_control_handle.handle).abort(); + // (&mut self.read_control_handle.handle).abort(); + // (&mut self.write_control_handle.handle).abort(); } } info!("disconnected"); @@ -257,7 +257,8 @@ impl<Lgc: Logic + Clone + Send + 'static> Supervisor<Lgc> { pub struct SupervisorHandle { sender: SupervisorSender, - handle: JoinHandle<()>, + // TODO: is not having handles fine? + // handle: JoinHandle<()>, } impl Deref for SupervisorHandle { @@ -295,7 +296,7 @@ impl DerefMut for SupervisorSender { impl SupervisorHandle { pub fn new<Lgc: Logic + Clone + Send + 'static>( - streams: BoundJabberStream<Tls>, + streams: BoundJabberStream, on_crash: oneshot::Sender<()>, jid: JID, server: JID, @@ -341,13 +342,15 @@ impl SupervisorHandle { logic, ); - let handle = tokio::spawn(async move { actor.run().await }); + #[cfg(target_arch = "wasm32")] + wasm_bindgen_futures::spawn_local(async move { actor.run().await }); + #[cfg(not(target_arch = "wasm32"))] + tokio::spawn(async move { actor.run().await }); ( write_handle, Self { sender: supervisor_sender, - handle, }, ) } |