Module actix_web::ws

source ·
Expand description

WebSocket support for Actix

To setup a WebSocket, first do web socket handshake then on success convert Payload into a WsStream stream and then use WsWriter to communicate with the peer.

Example

use actix_web::{ws, HttpRequest, HttpResponse};

// do websocket handshake and start actor
fn ws_index(req: &HttpRequest) -> Result<HttpResponse> {
    ws::start(req, Ws)
}

struct Ws;

impl Actor for Ws {
    type Context = ws::WebsocketContext<Self>;
}

// Handler for ws::Message messages
impl StreamHandler<ws::Message, ws::ProtocolError> for Ws {
    fn handle(&mut self, msg: ws::Message, ctx: &mut Self::Context) {
        match msg {
            ws::Message::Ping(msg) => ctx.pong(&msg),
            ws::Message::Text(text) => ctx.text(text),
            ws::Message::Binary(bin) => ctx.binary(bin),
            _ => (),
        }
    }
}

Structs

WebSocket client
Future that implementes client websocket handshake process.
Websocket reader client
Websocket writer client
Reason for closing the connection
A struct representing a WebSocket frame.
WebSocket message with framing.
Execution context for WebSockets actors
Maps Payload stream into stream of ws::Message items

Enums

Websocket client error
Status code used to indicate why an endpoint is closing the WebSocket connection.
Websocket handshake errors
WebSocket Message
Operation codes as part of rfc6455.
Websocket protocol errors

Traits

Common writing methods for a websocket.

Functions

Prepare WebSocket handshake response.
Do websocket handshake and start actor