[][src]Module websocket::ws

A module containing the traits and structs that lower layer of Rust-WebSocket is based on.

This should not need to be used by regular users.

Rust-WebSocket is based on three core traits: Message, Sender and Receiver. These traits have default implementations outside this module, however can be implemented by a user to extend the functionality provided.

If a user wishes to use a different representation of a data frame, all three traits must be implemented by the user. If a user wishes to use a different representation of a message (but the same data frame), they must implement the Message and Receiver traits.

A WebSocket message type must implement Message<D> where D is the type of data frame that the message can be converted to/from.

When sending a message, the message is converted into an iterator with its into_iter() method, which allows the message to output data frames forming a fragmented message where each data frame is sent immediately to be reassembled at the remote endpoint.

The type of data frame can be any type, however, if you choose a data frame type other than DataFrame, you will also have to implement the Sender and Receiver traits to send and receive data frames.

A Sender<D> sends a data frame of type D, typically wrapping an underlying Writer, by implementing the send_dataframe() method. The send_message() method has a default implementation which turns the message into an iterator and then continually calls send_dataframe() with the frames from the iterator.

To make life easier for a Sender, several utility functions are provided which write various pieces of data to a Writer. These are found within the util module.

A Receiver receives data frames of type D and messages of type Receiver::Message, typically wrapping an underlying Reader, by implementing the recv_dataframe() and recv_message_dataframes() methods. The recv_message_dataframes() method has to form a Vec of data frames which comprise one whole, single message.

To make life easier for a Receiver, several utility functions are provided which read various pieces of data from a Reader. These are found within the util module.

Re-exports

pub use self::message::Message;
pub use self::receiver::Receiver;
pub use self::receiver::DataFrameIterator;
pub use self::receiver::MessageIterator;
pub use self::sender::Sender;

Modules

dataframe

Describes the generic DataFrame, defining a trait that all dataframes should share. This is so one can optimize the memory footprint of a dataframe for their own needs, and be able to use custom dataframes quickly

message

Provides a trait for WebSocket messages

receiver

Provides a trait for receiving data frames and messages.

sender

Provides a trait for sending data frames and messages.

util

Utility functions for various portions of Rust-WebSocket.