Struct WebSocket

Source
pub struct WebSocket<F>
where F: Factory,
{ pub poll: Poll, pub handler: Handler<F>, }
Expand description

The WebSocket struct. A WebSocket can support multiple incoming and outgoing connections.

Fields§

§poll: Poll§handler: Handler<F>

Implementations§

Source§

impl<F> WebSocket<F>
where F: Factory,

Source

pub fn new(factory: F) -> Result<WebSocket<F>>

Create a new WebSocket using the given Factory to create handlers.

Source

pub fn bind<A>(self, addr_spec: A) -> Result<WebSocket<F>>
where A: ToSocketAddrs,

Consume the WebSocket and bind to the specified address. If the addr_spec yields multiple addresses this will return after the first successful bind. local_addr can be called to determine which address it ended up binding to. After the server is successfully bound you should start it using run.

Source

pub fn listen<A>(self, addr_spec: A) -> Result<WebSocket<F>>
where A: ToSocketAddrs,

Consume the WebSocket and listen for new connections on the specified address.

§Safety

This method will block until the event loop finishes running.

Source

pub fn connect(&mut self, url: Url) -> Result<&mut WebSocket<F>>

Queue an outgoing connection on this WebSocket. This method may be called multiple times, but the actual connections will not be established until run is called.

Source

pub fn run(self) -> Result<WebSocket<F>>

Run the WebSocket. This will run the encapsulated event loop blocking the calling thread until the WebSocket is shutdown.

Source

pub fn broadcaster(&self) -> Sender

Get a Sender that can be used to send messages on all connections. Calling send on this Sender is equivalent to calling broadcast. Calling shutdown on this Sender will shutdown the WebSocket even if no connections have been established.

Source

pub fn local_addr(&self) -> Result<SocketAddr>

Get the local socket address this socket is bound to. Will return an error if the backend returns an error. Will return a NotFound error if this WebSocket is not a listening socket.

Auto Trait Implementations§

§

impl<F> !Freeze for WebSocket<F>

§

impl<F> !RefUnwindSafe for WebSocket<F>

§

impl<F> Send for WebSocket<F>
where F: Send, <F as Factory>::Handler: Send,

§

impl<F> !Sync for WebSocket<F>

§

impl<F> Unpin for WebSocket<F>
where F: Unpin, <F as Factory>::Handler: Unpin,

§

impl<F> !UnwindSafe for WebSocket<F>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V