[][src]Struct splinter::transport::ws::WsTransport

pub struct WsTransport {}

A WebSocket-based Transport.

Supports endpoints of the format ws://ip_or_host:port.

Examples

To connect to the a remote endpoint, send a message, and receive a reply message:

use splinter::transport::Transport as _;
use splinter::transport::ws::WsTransport;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut transport = WsTransport::default();

    // Connect to a remote endpoint starting wtih `ws://`.
    let mut connection = transport.connect("ws://127.0.0.1:5555")?;

    // Send some bytes
    connection.send(b"hello world")?;

    // Receive a response
    let msg = connection.recv()?;

    // Disconnect
    connection.disconnect()?;

    Ok(())
}

To accept a connection, receive, and send a reply:

use splinter::transport::Transport as _;
use splinter::transport::ws::WsTransport;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut transport = WsTransport::default();

    // Create a listener, which will bind to the port
    let mut listener = transport.listen("ws://127.0.0.1:5555")?;

    // When the other side connects, accept will return a `Connection`
    let mut connection = listener.accept()?;

    // Receive a message
    let msg = connection.recv()?;

    // Send a response
    connection.send(b"hello world")?;

    // Disconnect
    connection.disconnect()?;

    Ok(())
}

Trait Implementations

impl Default for WsTransport[src]

impl Transport for WsTransport[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<P, N> IntoBytes<P> for N where
    P: Message + FromNative<N>, 
[src]

impl<N, P> IntoNative<N> for P where
    N: FromProto<P>, 
[src]

impl<N, P> IntoProto<P> for N where
    P: FromNative<N>, 
[src]

impl<T> IntoSql for T

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any

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