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

Websocket reader client

ClientWriter

Websocket writer client

CloseReason

Reason for closing the connection

Frame

A struct representing a WebSocket frame.

FramedMessage

WebSocket message with framing.

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

Traits

WsWriter

Common writing methods for a websocket.

Functions

handshake

Prepare WebSocket handshake response.

start

Do websocket handshake and start actor