From 9f385d384b72e87dbb72ddf474c8596fe856b49e Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 29 Dec 2019 04:16:54 +0900 Subject: [PATCH] Update websockets --- content/docs/websockets.md | 4 ++-- examples/websockets/Cargo.toml | 7 ++++--- examples/websockets/src/main.rs | 24 ++++++++++++++---------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/content/docs/websockets.md b/content/docs/websockets.md index d7e0f20..4e200cf 100644 --- a/content/docs/websockets.md +++ b/content/docs/websockets.md @@ -18,7 +18,7 @@ The following is an example of a simple websocket echo server: > An example chat server with the ability to chat over a websocket or tcp connection > is available in [websocket-chat directory][chat] -[message]: https://docs.rs/actix-web-actors/1.0.0/actix_web_actors/ws/enum.Message.html -[payload]: https://docs.rs/actix-web/1.0.2/actix_web/web/struct.Payload.html +[message]: https://docs.rs/actix-web-actors/2/actix_web_actors/ws/enum.Message.html +[payload]: https://docs.rs/actix-web/2/actix_web/web/struct.Payload.html [examples]: https://github.com/actix/examples/tree/master/websocket/ [chat]: https://github.com/actix/examples/tree/master/websocket-chat/ diff --git a/examples/websockets/Cargo.toml b/examples/websockets/Cargo.toml index e8f5b50..1f58706 100644 --- a/examples/websockets/Cargo.toml +++ b/examples/websockets/Cargo.toml @@ -4,6 +4,7 @@ version = "1.0.0" edition = "2018" [dependencies] -actix = "0.8" -actix-web = "1.0" -actix-web-actors = "1.0" +actix = "0.9" +actix-rt = "1.0" +actix-web = "2.0" +actix-web-actors = "2.0" diff --git a/examples/websockets/src/main.rs b/examples/websockets/src/main.rs index fd49c5c..8198d34 100644 --- a/examples/websockets/src/main.rs +++ b/examples/websockets/src/main.rs @@ -11,29 +11,33 @@ impl Actor for MyWs { } /// Handler for ws::Message message -impl StreamHandler for MyWs { - fn handle(&mut self, msg: ws::Message, ctx: &mut Self::Context) { +impl StreamHandler> for MyWs { + fn handle( + &mut self, + msg: Result, + 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), + Ok(ws::Message::Ping(msg)) => ctx.pong(&msg), + Ok(ws::Message::Text(text)) => ctx.text(text), + Ok(ws::Message::Binary(bin)) => ctx.binary(bin), _ => (), } } } -fn index(req: HttpRequest, stream: web::Payload) -> Result { +async fn index(req: HttpRequest, stream: web::Payload) -> Result { let resp = ws::start(MyWs {}, &req, stream); println!("{:?}", resp); resp } -fn main() { +#[actix_rt::main] +async fn main() -> std::io::Result<()> { HttpServer::new(|| App::new().route("/ws/", web::get().to(index))) - .bind("127.0.0.1:8088") - .unwrap() + .bind("127.0.0.1:8088")? .run() - .unwrap(); + .await } //