tokio-websockets 0.12.0

High performance, strict, tokio-util based WebSockets implementation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use futures_util::{SinkExt, StreamExt};
use tokio::net::TcpListener;
use tokio_websockets::{Error, ServerBuilder};

#[tokio::main]
async fn main() -> Result<(), Error> {
    let listener = TcpListener::bind("127.0.0.1:3000").await?;

    loop {
        let (conn, _) = listener.accept().await?;
        let (_request, mut server) = ServerBuilder::new().accept(conn).await?;

        while let Some(Ok(item)) = server.next().await {
            println!("Received: {item:?}");
            server.send(item).await?;
        }
    }
}