Module actix_web::ws [] [src]

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

Client

WebSocket client

ClientHandshake

Future that implementes client websocket handshake process.

ClientReader
ClientWriter
Frame

A struct representing a WebSocket frame.

WebsocketContext

Execution context for WebSockets actors

WsStream

Maps Payload stream into stream of ws::Message items

Enums

ClientError

Websocket client error

CloseCode

Status code used to indicate why an endpoint is closing the WebSocket connection.

HandshakeError

Websocket handshake errors

Message

WebSocket Message

OpCode

Operation codes as part of rfc6455.

ProtocolError

Websocket protocol errors

Functions

handshake

Prepare WebSocket handshake response.

start

Do websocket handshake and start actor