Struct actix_ws::Session

source ·
pub struct Session { /* private fields */ }
Expand description

A handle into the websocket session.

This type can be used to send messages into the websocket.

Implementations§

source§

impl Session

source

pub async fn text(&mut self, msg: impl Into<ByteString>) -> Result<(), Closed>

Send text into the websocket

if session.text("Some text").await.is_err() {
    // session closed
}
source

pub async fn binary(&mut self, msg: impl Into<Bytes>) -> Result<(), Closed>

Send raw bytes into the websocket

if session.binary(&b"some bytes"[..]).await.is_err() {
    // session closed
}
source

pub async fn ping(&mut self, msg: &[u8]) -> Result<(), Closed>

Ping the client

For many applications, it will be important to send regular pings to keep track of if the client has disconnected

if session.ping(b"").await.is_err() {
    // session is closed
}
source

pub async fn pong(&mut self, msg: &[u8]) -> Result<(), Closed>

Pong the client

match msg {
    Message::Ping(bytes) => {
        let _ = session.pong(&bytes).await;
    }
    _ => (),
}
source

pub async fn continuation(&mut self, msg: Item) -> Result<(), Closed>

Manually control sending continuations

Be wary of this method. Continuations represent multiple frames that, when combined, are presented as a single message. They are useful when the entire contents of a message are not available all at once. However, continuations MUST NOT be interrupted by other Text or Binary messages. Control messages such as Ping, Pong, or Close are allowed to interrupt a continuation.

Continuations must be initialized with a First variant, and must be terminated by a Last variant, with only Continue variants sent in between.

session.continuation(Item::FirstText("Hello".into())).await?;
session.continuation(Item::Continue(b", World"[..].into())).await?;
session.continuation(Item::Last(b"!"[..].into())).await?;
source

pub async fn close(self, reason: Option<CloseReason>) -> Result<(), Closed>

Send a close message, and consume the session

All clones will return Err(Closed) if used after this call

session.close(None).await

Trait Implementations§

source§

impl Clone for Session

source§

fn clone(&self) -> Session

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more