[][src]Struct websocket::message::Message

pub struct Message<'a> {
    pub opcode: Type,
    pub cd_status_code: Option<u16>,
    pub payload: Cow<'a, [u8]>,
}

Represents a WebSocket message.

This message also has the ability to not own its payload, and stores its entire payload in chunks that get written in order when the message gets sent. This makes the write_payload allocate less memory than the payload method (which creates a new buffer every time).

Incidentally this (the default implementation of Message) implements the DataFrame trait because this message just gets sent as one single DataFrame.

Fields

opcode: Type

Type of WebSocket message

cd_status_code: Option<u16>

Optional status code to send when closing a connection. (only used if this message is of Type::Close)

payload: Cow<'a, [u8]>

Main payload

Methods

impl<'a> Message<'a>
[src]

pub fn text<S>(data: S) -> Self where
    S: Into<Cow<'a, str>>, 
[src]

Create a new WebSocket message with text data

pub fn binary<B>(data: B) -> Self where
    B: IntoCowBytes<'a>, 
[src]

Create a new WebSocket message with binary data

pub fn close() -> Self
[src]

Create a new WebSocket message that signals the end of a WebSocket connection, although messages can still be sent after sending this

pub fn close_because<S>(code: u16, reason: S) -> Self where
    S: Into<Cow<'a, str>>, 
[src]

Create a new WebSocket message that signals the end of a WebSocket connection and provide a text reason and a status code for why. Messages can still be sent after sending this message.

pub fn ping<P>(data: P) -> Self where
    P: IntoCowBytes<'a>, 
[src]

Create a ping WebSocket message, a pong is usually sent back after sending this with the same data

pub fn pong<P>(data: P) -> Self where
    P: IntoCowBytes<'a>, 
[src]

Create a pong WebSocket message, usually a response to a ping message

pub fn into_pong(&mut self) -> Result<(), ()>
[src]

Convert a ping message to a pong, keeping the data. This will fail if the original message is not a ping.

Trait Implementations

impl<'a> DataFrame for Message<'a>
[src]

fn frame_size(&self, masked: bool) -> usize
[src]

Get's the size of the entire dataframe in bytes, i.e. header and payload. Read more

fn write_to(&self, writer: &mut dyn Write, mask: bool) -> WebSocketResult<()>
[src]

Writes a DataFrame to a Writer.

impl<'a> Message for Message<'a>
[src]

fn serialize(&self, writer: &mut dyn Write, masked: bool) -> WebSocketResult<()>
[src]

Attempt to form a message from a series of data frames

fn message_size(&self, masked: bool) -> usize
[src]

Returns how many bytes this message will take up

fn from_dataframes<D>(frames: Vec<D>) -> WebSocketResult<Self> where
    D: DataFrameTrait
[src]

Attempt to form a message from a series of data frames

impl<'m> From<Message<'m>> for OwnedMessage
[src]

impl<'m> From<OwnedMessage> for Message<'m>
[src]

impl<'a> Eq for Message<'a>
[src]

impl<'a> PartialEq<Message<'a>> for Message<'a>
[src]

impl<'a> Clone for Message<'a>
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<'a> Debug for Message<'a>
[src]

Auto Trait Implementations

impl<'a> Send for Message<'a>

impl<'a> Sync for Message<'a>

Blanket Implementations

impl<T> From for T
[src]

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

impl<T> Typeable for T where
    T: Any

fn get_type(&self) -> TypeId

Get the TypeId of this object.

impl<T> Erased for T