#async-io #async #wasm #async-read

websocket-async-io

WebSocket的AsyncWrite/AsyncRead实现

1个稳定版本

1.0.0 2021年9月21日

#227WebSocket

每月38次下载

MIT/Apache

11KB
184

websocket-async-io

使用web-sys在WebSocket之上实现的AsyncReadAsyncWrite

示例

async fn run() -> Result<(), std::io::Error> {
    let ws = WebsocketIO::new(([127, 0, 0, 1], 8000).into()).await?;
    let (mut reader, mut writer) = ws.split();

    writer.write_all(&[0, 1, 2, 3, 93]).await?;
    writer.write_all(&[42, 34, 93]).await?;
    writer.write_all(&[0, 0, 1, 2, 93]).await?;

    let mut buf = Vec::new();
    for _ in 0..3 {
        reader.read_until(93, &mut buf).await?;
        console_log!("{:?}", buf);
        buf.clear();
    }

    Ok(())
}

lib.rs:

使用web-sys在WebSocket之上实现的AsyncReadAsyncWrite

示例

let ws = WebsocketIO::new("localhost:8000").await?;
let (mut reader, mut writer) = ws.split();

writer.write_all(&[0, 1, 2, 3, 93]).await?;
writer.write_all(&[42, 34, 93]).await?;
writer.write_all(&[0, 0, 1, 2, 93]).await?;

let mut buf = Vec::new();
for _ in 0..3 {
    reader.read_until(93, &mut buf).await?;
    console_log!("{:?}", buf);
    buf.clear();
}

依赖关系

~6.5–9MB
~172K SLoC