32个版本 (12个稳定版本)

4.3.1+已弃用2024年8月7日
4.3.0 2024年2月4日
4.2.0 2023年1月21日
4.1.0 2022年3月2日
1.0.0-alpha.22019年3月30日

#27#actix-actor

Download history 20275/week @ 2024-05-04 19464/week @ 2024-05-11 22519/week @ 2024-05-18 20493/week @ 2024-05-25 27255/week @ 2024-06-01 25405/week @ 2024-06-08 24357/week @ 2024-06-15 25669/week @ 2024-06-22 20677/week @ 2024-06-29 22530/week @ 2024-07-06 25690/week @ 2024-07-13 26748/week @ 2024-07-20 28317/week @ 2024-07-27 30554/week @ 2024-08-03 34565/week @ 2024-08-10 32992/week @ 2024-08-17

131,908 每月下载量
用于 120 个crate(85个直接使用)

MIT/Apache

1.5MB
33K SLoC

actix-web-actors

Actix Web的Actix actors支持。

此crate已弃用。迁移到 actix-ws

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


lib.rs:

Actix Web的Actix actors支持。

此crate已弃用。迁移到 actix-ws

示例

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
}

文档和社区资源

除了这份API文档外,还有其他一些资源可用

要开始浏览API文档,您可能首先考虑查看以下页面

  • [ws]: 此模块提供WebSocket的actor支持。

  • HttpContext: 此结构体提供流式HTTP响应的actor支持。

依赖项

~13–24MB
~426K SLoC