зеркало из https://github.com/mozilla/gecko-dev.git
28 строки
799 B
Rust
28 строки
799 B
Rust
#![deny(warnings)]
|
|
|
|
use futures::{FutureExt, StreamExt};
|
|
use warp::Filter;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
pretty_env_logger::init();
|
|
|
|
let routes = warp::path("echo")
|
|
// The `ws()` filter will prepare the Websocket handshake.
|
|
.and(warp::ws())
|
|
.map(|ws: warp::ws::Ws| {
|
|
// And then our closure will be called when it completes...
|
|
ws.on_upgrade(|websocket| {
|
|
// Just echo all messages back...
|
|
let (tx, rx) = websocket.split();
|
|
rx.forward(tx).map(|result| {
|
|
if let Err(e) = result {
|
|
eprintln!("websocket error: {:?}", e);
|
|
}
|
|
})
|
|
})
|
|
});
|
|
|
|
warp::serve(routes).run(([127, 0, 0, 1], 3030)).await;
|
|
}
|