use async_std::prelude::*;
use tide_websockets::{Message, WebSocket};
#[async_std::main]
async fn main() -> Result<(), std::io::Error> {
env_logger::init();
let mut app = tide::new();
app.at("/as_middleware")
.with(WebSocket::new(|_request, mut stream| async move {
while let Some(Ok(Message::Text(input))) = stream.next().await {
let output: String = input.chars().rev().collect();
stream
.send_string(format!("{} | {}", &input, &output))
.await?;
}
Ok(())
}))
.get(|_| async move { Ok("this was not a websocket request") });
app.at("/as_endpoint")
.get(WebSocket::new(|_request, mut stream| async move {
while let Some(Ok(Message::Text(input))) = stream.next().await {
let output: String = input.chars().rev().collect();
stream
.send_string(format!("{} | {}", &input, &output))
.await?;
}
Ok(())
}));
app.listen("127.0.0.1:8080").await?;
Ok(())
}