Struct slack::WebSocketMessage
[−]
pub struct WebSocketMessage<'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>
fn text<S>(data: S) -> Message<'a> where S: Into<Cow<'a, str>>
Create a new WebSocket message with text data
fn binary<B>(data: B) -> Message<'a> where B: IntoCowBytes<'a>
Create a new WebSocket message with binary data
fn close() -> Message<'a>
Create a new WebSocket message that signals the end of a WebSocket connection, although messages can still be sent after sending this
fn close_because<S>(code: u16, reason: S) -> Message<'a> where S: Into<Cow<'a, str>>
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.
fn ping<P>(data: P) -> Message<'a> where P: IntoCowBytes<'a>
Create a ping WebSocket message, a pong is usually sent back after sending this with the same data
fn pong<P>(data: P) -> Message<'a> where P: IntoCowBytes<'a>
Create a pong WebSocket message, usually a response to a ping message
fn into_pong(&mut self) -> Result<(), ()>
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>
fn is_last(&self) -> bool
fn opcode(&self) -> u8
fn reserved(&'b self) -> &'b [bool; 3]
fn payload(&'b self) -> Cow<'b, [u8]>
fn size(&self) -> usize
fn write_payload<W>(&self, socket: &mut W) -> Result<(), WebSocketError> where W: Write
impl<'a, 'b> Message<'b, &'b Message<'a>> for Message<'a>
type DataFrameIterator = Take<Repeat<&'b Message<'a>>>
fn dataframes(&'b self) -> Message<'a>::DataFrameIterator
fn from_dataframes<D>(frames: Vec<D>) -> Result<Message<'a>, WebSocketError> where D: DataFrame
Attempt to form a message from a series of data frames
impl<'a> PartialEq<Message<'a>> for Message<'a>
impl<'a> Clone for Message<'a>
fn clone(&self) -> Message<'a>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more