mirror of
https://github.com/actix/actix-website
synced 2025-02-21 11:54:48 +01:00
Moves websocket example to crate.
This commit is contained in:
parent
769c9af8f9
commit
262f835485
@ -12,36 +12,7 @@ with an http actor.
|
|||||||
|
|
||||||
The following is an example of a simple websocket echo server:
|
The following is an example of a simple websocket echo server:
|
||||||
|
|
||||||
```rust
|
{{< include-example example="websockets" file="main.rs" section="websockets" >}}
|
||||||
use actix::*;
|
|
||||||
use actix_web::*;
|
|
||||||
|
|
||||||
/// Define http actor
|
|
||||||
struct Ws;
|
|
||||||
|
|
||||||
impl Actor for Ws {
|
|
||||||
type Context = ws::WebsocketContext<Self>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Handler for ws::Message message
|
|
||||||
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),
|
|
||||||
_ => (),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
App::new()
|
|
||||||
.resource("/ws/", |r| r.f(|req| ws::start(req, Ws)))
|
|
||||||
.finish();
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> A simple websocket echo server example is available in the
|
> A simple websocket echo server example is available in the
|
||||||
> [examples directory](https://github.com/actix/examples/tree/master/websocket/).
|
> [examples directory](https://github.com/actix/examples/tree/master/websocket/).
|
||||||
|
@ -23,4 +23,5 @@ exclude = [
|
|||||||
"testing",
|
"testing",
|
||||||
"middleware",
|
"middleware",
|
||||||
"static-files",
|
"static-files",
|
||||||
|
"websockets",
|
||||||
]
|
]
|
||||||
|
9
examples/websockets/Cargo.toml
Normal file
9
examples/websockets/Cargo.toml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "websockets"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Cameron Dershem <cameron@pinkhatbeard.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
actix = "0.7"
|
||||||
|
actix-web = "1.0"
|
29
examples/websockets/src/main.rs
Normal file
29
examples/websockets/src/main.rs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// <websockets>
|
||||||
|
// use actix::*;
|
||||||
|
// use actix_web::*;
|
||||||
|
|
||||||
|
// /// Define http actor
|
||||||
|
// struct Ws;
|
||||||
|
|
||||||
|
// impl Actor for Ws {
|
||||||
|
// type Context = ws::WebsocketContext<Self>;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// /// Handler for ws::Message message
|
||||||
|
// 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),
|
||||||
|
// _ => (),
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// fn main() {
|
||||||
|
// App::new()
|
||||||
|
// .resource("/ws/", |r| r.f(|req| ws::start(req, Ws)))
|
||||||
|
// .finish();
|
||||||
|
// }
|
||||||
|
// </websockets>
|
Loading…
x
Reference in New Issue
Block a user