32 releases (12 stable)

4.3.1+deprecated Aug 7, 2024
4.3.0 Feb 4, 2024
4.2.0 Jan 21, 2023
4.1.0 Mar 2, 2022
1.0.0-alpha.2 Mar 30, 2019

#30 in #actix-actor

Download history 28699/week @ 2024-07-29 29908/week @ 2024-08-05 34634/week @ 2024-08-12 34833/week @ 2024-08-19 30034/week @ 2024-08-26 33112/week @ 2024-09-02 32274/week @ 2024-09-09 24349/week @ 2024-09-16 29347/week @ 2024-09-23 30172/week @ 2024-09-30 24709/week @ 2024-10-07 27989/week @ 2024-10-14 29332/week @ 2024-10-21 25423/week @ 2024-10-28 25197/week @ 2024-11-04 24370/week @ 2024-11-11

105,495 downloads per month
Used in 121 crates (86 directly)

MIT/Apache

1.5MB
33K SLoC

actix-web-actors

Actix actors support for Actix Web.

This crate is deprecated. Migrate to actix-ws.

crates.io Documentation Version License
dependency status Download Chat on Discord


lib.rs:

Actix actors support for Actix Web.

This crate is deprecated. Migrate to actix-ws.

Examples

use actix::{Actor, StreamHandler};
use actix_web::{get, web, App, Error, HttpRequest, HttpResponse, HttpServer};
use actix_web_actors::ws;

/// Define Websocket actor
struct MyWs;

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

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

#[get("/ws")]
async fn index(req: HttpRequest, stream: web::Payload) -> Result<HttpResponse, Error> {
    ws::start(MyWs, &req, stream)
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| App::new().service(index))
        .bind(("127.0.0.1", 8080))?
        .run()
        .await
}

Documentation & Community Resources

In addition to this API documentation, several other resources are available:

To get started navigating the API docs, you may consider looking at the following pages first:

  • [ws]: This module provides actor support for WebSockets.

  • HttpContext: This struct provides actor support for streaming HTTP responses.

Dependencies

~14–25MB
~411K SLoC