Expand description
A fully asynchronous implementation of RFC6455 (The WebSocket protocol). Complete with an optional implementation of RFC7692 (Compression Extensions For WebSocket).
§Features
- Implement your own own extensions using ratchet_ext.
- Per-message deflate with ratchet_deflate or enable with the
deflate
feature. - Split WebSocket with the
split
feature.
§Error handling
Ratchet is strict over its implementation of The WebSocket protocol and as such any errors in
a session may result in the closure of the session when performing a send or receive operation;
it is possible to perform a liveliness check on a WebSocket by invoking the is_closed
function.
If an error is encountered, then an attempt to close the session cleanly is performed and an
error is returned so it is clear that the connection may have been closed.
Possible errors that may be encountered during an upgraded session are protocol violations by the peer or an IO error.
Re-exports§
pub use ratchet_ext;
Structs§
- A reason for closing the WebSocket connection.
- The errors that may occur during a WebSocket connection.
- A frame’s header.
- Represents a parsed header.
- A set of HTTP headers
- Represents an HTTP header field value.
- An extension stub that does nothing.
- An extension provider stub that will always succeed with
NoExt
. - A structure containing the bits that an extension may set high during a session.
- A subprotocol registry that is used for negotiating a possible subprotocol to use for a connection.
- A structure representing an upgraded WebSocket session and an optional subprotocol that was negotiated during the upgrade.
- A structure representing an upgraded WebSocket session and an optional subprotocol that was negotiated during the upgrade.
- An upgraded WebSocket stream.
- A builder to construct WebSocket clients.
- A configuration for building a WebSocket.
- A response to send to a client if the connection will not be upgraded.
- A builder to construct WebSocket servers.
- Represents a client connection that has been accepted and the upgrade request validated. This may be used to validate the request by a user and opt to either continue the upgrade or reject the connection - such as if the target path does not exist.
Enums§
- Additional implementation sources:
- Denotes the current state of a WebSocket session.
- A type of error represented.
- HTTP errors.
- A received WebSocket frame.
- A message type to send.
- A data code for a frame.
- The type of a payload to send to a peer.
- WebSocket protocol errors.
- The role of a WebSocket.
Traits§
- A negotiated WebSocket extension.
- A per-message frame decoder.
- A per-message frame encoder.
- A trait for negotiating an extension during a WebSocket handshake.
- A trait for permitting a matched encoder and decoder to be reunited into an extension.
- A trait for permitting an extension to be split into its encoder and decoder halves. Allowing for a WebSocket to be split into its sender and receiver halves.
- A trait for creating a request from a type.
- A stream representing a WebSocket connection.
Functions§
- Execute a server handshake on the provided stream.
- Execute a server handshake on the provided stream. An attempt will be made to negotiate the extension and subprotocols provided.
- Execute a WebSocket client handshake on
stream
, opting for no compression on messages and no subprotocol. - Execute a WebSocket client handshake on
stream
, attempting to negotiate the extension and a subprotocol.