pub struct ClientRunner<S: AppState> { /* private fields */ }Expand description
Implementation of the ClientRunner for managing WebSocket client connections and session lifecycle.
Implementations§
Source§impl<S: AppState> ClientRunner<S>
impl<S: AppState> ClientRunner<S>
Sourcepub async fn run(&mut self)
pub async fn run(&mut self)
Main client runner loop that manages WebSocket connections and message processing.
Examples found in repository?
examples/echo_client.rs (line 312)
294 pub async fn new(url: String) -> CoreResult<Self> {
295 // Use a simple connector (implement your own if needed)
296 let connector = DummyConnector::new(url);
297
298 let mut builder = ClientBuilder::new(connector, ());
299 builder =
300 builder.with_lightweight_handler(|msg, state, _| Box::pin(print_handler(msg, state)));
301 let (client, mut runner) = builder
302 .with_module::<EchoModule>()
303 .with_module::<StreamModule>()
304 .with_module::<PeriodicSenderModule>()
305 .build()
306 .await?;
307
308 // let echo_handle = client.get_handle::<EchoModule>().await.unwrap();
309 // let stream_handle = client.get_handle::<StreamModule>().await.unwrap();
310
311 // Start runner in background
312 let _runner = tokio::spawn(async move { runner.run().await });
313
314 Ok(Self { client, _runner })
315 }Auto Trait Implementations§
impl<S> Freeze for ClientRunner<S>
impl<S> !RefUnwindSafe for ClientRunner<S>
impl<S> Send for ClientRunner<S>
impl<S> Sync for ClientRunner<S>
impl<S> Unpin for ClientRunner<S>
impl<S> UnsafeUnpin for ClientRunner<S>
impl<S> !UnwindSafe for ClientRunner<S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more