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
clientFuture 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
actorsMaps
Payload
stream into stream of ws::Message
itemsEnums
Websocket client error
Status code used to indicate why an endpoint is closing the
WebSocket
connection.Websocket handshake errors
WebSocket
MessageOperation codes as part of rfc6455.
Websocket protocol errors
Traits
Common writing methods for a websocket.