pub struct WebSocket { /* private fields */ }
Available on crate feature websocket only.
Expand description

Wrapper around browser’s WebSocket API.

Implementations§

source§

impl WebSocket

source

pub fn open(url: &str) -> Result<Self, JsError>

Establish a WebSocket connection.

This function may error in the following cases:

  • The port to which the connection is being attempted is being blocked.
  • The URL is invalid.

The error returned is JsError. See the MDN Documentation to learn more.

source

pub fn open_with_protocol(url: &str, protocol: &str) -> Result<Self, JsError>

Establish a WebSocket connection.

This function may error in the following cases:

  • The port to which the connection is being attempted is being blocked.
  • The URL is invalid.
  • The specified protocol is not supported

The error returned is JsError. See the MDN Documentation to learn more.

source

pub fn open_with_protocols<S: AsRef<str> + Serialize>( url: &str, protocols: &[S] ) -> Result<Self, JsError>

Available on crate feature json only.

Establish a WebSocket connection.

This function may error in the following cases:

  • The port to which the connection is being attempted is being blocked.
  • The URL is invalid.
  • The specified protocols are not supported
  • The protocols cannot be converted to a JSON string list

The error returned is JsError. See the MDN Documentation to learn more.

This function requires json features because protocols are parsed by serde into JsValue.

source

pub fn close( self, code: Option<u16>, reason: Option<&str> ) -> Result<(), JsError>

Closes the websocket.

See the MDN Documentation to learn about parameters passed to this function and when it can return an Err(_)

source

pub fn state(&self) -> State

The current state of the websocket.

source

pub fn extensions(&self) -> String

The extensions in use.

source

pub fn protocol(&self) -> String

The sub-protocol in use.

source§

impl WebSocket

source

pub fn has_pending_bytes(&self) -> bool

Available on crate feature io-util only.

Returns whether there are pending bytes left after calling AsyncRead::poll_read on this WebSocket.

When calling AsyncRead::poll_read, Stream::poll_next is called under the hood, and when the received item is too big to fit into the provided buffer, leftover bytes are stored. These leftover bytes are returned by subsequent calls to AsyncRead::poll_read.

Trait Implementations§

source§

impl AsyncRead for WebSocket

Available on crate feature io-util only.
source§

fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut [u8] ) -> Poll<Result<usize>>

Attempt to read from the AsyncRead into buf. Read more
source§

fn poll_read_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &mut [IoSliceMut<'_>] ) -> Poll<Result<usize, Error>>

Attempt to read from the AsyncRead into bufs using vectored IO operations. Read more
source§

impl AsyncWrite for WebSocket

Available on crate feature io-util only.
source§

fn poll_write( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8] ) -> Poll<Result<usize>>

Attempt to write bytes from buf into the object. Read more
source§

fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>

Attempt to flush the object, ensuring that any buffered data reach their destination. Read more
source§

fn poll_close(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<()>>

Attempt to close the object. Read more
source§

fn poll_write_vectored( self: Pin<&mut Self>, cx: &mut Context<'_>, bufs: &[IoSlice<'_>] ) -> Poll<Result<usize, Error>>

Attempt to write bytes from bufs into the object using vectored IO operations. Read more
source§

impl Drop for WebSocket

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Sink<Message> for WebSocket

§

type Error = WebSocketError

The type of value produced by the sink when an error occurs.
source§

fn poll_ready( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>

Attempts to prepare the Sink to receive a value. Read more
source§

fn start_send(self: Pin<&mut Self>, item: Message) -> Result<(), Self::Error>

Begin the process of sending a value to the sink. Each call to this function must be preceded by a successful call to poll_ready which returned Poll::Ready(Ok(())). Read more
source§

fn poll_flush( self: Pin<&mut Self>, _cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>

Flush any remaining output from this sink. Read more
source§

fn poll_close( self: Pin<&mut Self>, _cx: &mut Context<'_> ) -> Poll<Result<(), Self::Error>>

Flush any remaining output and close this sink, if necessary. Read more
source§

impl Stream for WebSocket

§

type Item = Result<Message, WebSocketError>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more
source§

impl TryFrom<WebSocket> for WebSocket

§

type Error = JsError

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

fn try_from(ws: WebSocket) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<'pin> Unpin for WebSocket
where __WebSocket<'pin>: Unpin,

Auto Trait Implementations§

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

§

type Ok = T

The type of successful values yielded by this future
§

type Error = E

The type of failures yielded by this future
source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_> ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more