#websocket-server #socket-server #frame #log #builder #debugging #tokio

websocket-server-async

Rust WebSocket服务器 tokio框架

5个不稳定版本

0.3.0 2024年1月18日
0.2.2 2022年9月19日
0.1.6 2022年4月27日
0.1.3 2022年3月20日
0.1.0 2022年2月4日

#124 in WebSocket

每月41次下载

MIT/Apache

20KB
448 代码行

#rust websocket tokio服务器框架。

示例 Echo

use anyhow::Result;
use futures_util::StreamExt;
use log::*;
use websocket_server_async::{Builder, IPeer, IWebSocketServer};

#[tokio::main]
async fn main() -> Result<()> {
    env_logger::Builder::new()
        .filter_level(log::LevelFilter::Debug)
        .init();
    let websocket_server = Builder::new("0.0.0.0:8888")
        .set_connect_event(|addr| {
            info!("{} connect", addr);
            true
        })
        .set_input_event(|mut reader, peer, _| async move {
            while let Some(msg) = reader.next().await {
                let msg = msg?;
                if msg.is_text() || msg.is_binary() {
                    peer.send_message(msg).await?;
                }
            }
            Ok(())
        })
        .build()
        .await;
    websocket_server.start_block(()).await?;
    Ok(())
}


依赖项

~11–23MB
~406K SLoC