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.2 | 2019年3月30日 |
#27 在 #actix-actor
131,908 每月下载量
用于 120 个crate(85个直接使用)
1.5MB
33K SLoC
actix-web-actors
Actix Web的Actix actors支持。
此crate已弃用。迁移到
actix-ws
。
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