Struct workflow_rpc::server::WebSocketServer  
source · pub struct WebSocketServer<T>{
    pub counters: Arc<WebSocketCounters>,
    pub handler: Arc<T>,
    pub stop: DuplexChannel,
}Expand description
WebSocketServer that provides the main websocket connection and message processing loop that delivers messages to the installed WebSocketHandler trait.
Fields§
§counters: Arc<WebSocketCounters>§handler: Arc<T>§stop: DuplexChannelImplementations§
source§impl<T> WebSocketServer<T>
 
impl<T> WebSocketServer<T>
pub fn new( handler: Arc<T>, counters: Option<Arc<WebSocketCounters>>, ) -> Arc<WebSocketServer<T>>
pub async fn bind( self: &Arc<WebSocketServer<T>>, addr: &str, ) -> Result<TcpListener, Error>
pub async fn listen( self: &Arc<WebSocketServer<T>>, listener: TcpListener, config: Option<WebSocketConfig>, ) -> Result<(), Error>
pub fn stop(&self) -> Result<(), Error>
pub async fn join(&self) -> Result<(), Error>
pub async fn stop_and_join(&self) -> Result<(), Error>
Trait Implementations§
source§impl<T> WebSocketServerTrait for WebSocketServer<T>
 
impl<T> WebSocketServerTrait for WebSocketServer<T>
fn bind<'life0, 'async_trait>(
    self: Arc<WebSocketServer<T>>,
    addr: &'life0 str,
) -> Pin<Box<dyn Future<Output = Result<TcpListener, Error>> + Send + 'async_trait>>where
    'life0: 'async_trait,
    WebSocketServer<T>: 'async_trait,
fn listen<'async_trait>(
    self: Arc<WebSocketServer<T>>,
    listener: TcpListener,
    config: Option<WebSocketConfig>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
    WebSocketServer<T>: 'async_trait,
fn stop(&self) -> Result<(), Error>
fn join<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
    'life0: 'async_trait,
    WebSocketServer<T>: 'async_trait,
fn stop_and_join<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
    'life0: 'async_trait,
    WebSocketServer<T>: 'async_trait,
Auto Trait Implementations§
impl<T> Freeze for WebSocketServer<T>
impl<T> RefUnwindSafe for WebSocketServer<T>where
    T: RefUnwindSafe,
impl<T> Send for WebSocketServer<T>
impl<T> Sync for WebSocketServer<T>
impl<T> !Unpin for WebSocketServer<T>
impl<T> UnwindSafe for WebSocketServer<T>where
    T: RefUnwindSafe,
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
source§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert 
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert 
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.source§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
Convert 
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert 
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.