- let echo = warp::path("ws-echo")
- .and(warp::ws())
- .map(|ws: warp::ws::Ws| {
- ws.on_upgrade(|websocket| {
- // echo all messages back
- let (tx, rx) = websocket.split();
- rx.forward(tx).map(|result| {
- if let Err(e) = result {
- eprintln!("websocket error: {:?}", e);
+ pub async fn ws_echo_connected(websocket: warp::ws::WebSocket) {
+ // echo all messages back
+ let (tx, rx) = websocket.split();
+ rx.forward(tx).map(|result| {
+ if let Err(e) = result {
+ log::warn!("websocket error: {:?}", e);
+ }
+ }).await;
+ }
+
+ // websocat ws://127.0.0.1:3030/ws-rev
+ pub async fn ws_rev_connected(websocket: warp::ws::WebSocket) {
+ // echo all messages back
+ tokio::task::spawn(async {
+ let (mut tx, mut rx) = websocket.split();
+ while let Some(message) = rx.next().await {
+ let msg = match message {
+ Ok(msg) => msg,
+ Err(e) => {
+ log::error!("websocket error: {}", e);
+ break;