diff --git a/src/admin_websocket.rs b/src/admin_websocket.rs index b0f8e53..cd66561 100644 --- a/src/admin_websocket.rs +++ b/src/admin_websocket.rs @@ -58,17 +58,20 @@ impl AdminWebsocket { /// As string `"localhost:30000"` /// As tuple `([127.0.0.1], 30000)` pub async fn connect(socket_addr: impl ToSocketAddrs) -> Result { + Self::connect_with_config(socket_addr, Arc::new(WebsocketConfig::CLIENT_DEFAULT)).await + } + + /// Connect to a Conductor API AdminWebsocket with a custom WebsocketConfig. + pub async fn connect_with_config( + socket_addr: impl ToSocketAddrs, + websocket_config: Arc, + ) -> Result { let addr = socket_addr .to_socket_addrs()? .next() .expect("invalid websocket address"); - let websocket_config = Arc::new(WebsocketConfig::CLIENT_DEFAULT); - let (tx, mut rx) = again::retry(|| { - let websocket_config = Arc::clone(&websocket_config); - connect(websocket_config, addr) - }) - .await?; + let (tx, mut rx) = again::retry(|| connect(websocket_config.clone(), addr)).await?; // WebsocketReceiver needs to be polled in order to receive responses // from remote to sender requests. diff --git a/src/lib.rs b/src/lib.rs index fc47b35..4e88b47 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,6 +16,7 @@ pub use holochain_types::{ app::{InstallAppPayload, InstalledAppId}, dna::AgentPubKey, }; +pub use holochain_websocket::WebsocketConfig; pub use signing::client_signing::{ClientAgentSigner, SigningCredentials}; #[cfg(feature = "lair_signing")] pub use signing::lair_signing::LairAgentSigner;