Skip to content

luyikk/websocket-server-async

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#rust websocket tokio server frame.

Examples 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(())
}

About

websocket server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages