diff --git a/src/lib.rs b/src/lib.rs index 51c8eaee..4805b042 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -76,20 +76,19 @@ enum WebSocketMessage { } #[tauri::command] -async fn connect( +fn connect( window: Window, - manager: State<'_, ConnectionManager>, url: String, callback_function: String, config: Option, ) -> Result { - let (ws_stream, _) = connect_async_with_config(url, config.map(Into::into)).await?; - let (write, read) = ws_stream.split(); - let id = rand::random(); - manager.0.lock().await.insert(id, write); + let (ws_stream, _) = tauri::async_runtime::block_on(connect_async_with_config(url, config.map(Into::into)))?; tauri::async_runtime::spawn(async move { + let (write, read) = ws_stream.split(); + let manager = window.state::(); + manager.0.lock().await.insert(id, write); read.for_each(move |message| { let window_ = window.clone(); let callback_function_ = callback_function.clone();