Web-Socket

This library provide WebSocket implementation for both client and server.

Client example

```rust use web_socket::{WebSocket, DataType};

let mut ws = WebSocket::connect("ws://example.com/chat").await?; ws.send(getdatasomehow()).await?;

loop { let mut data = ws.recv().await?;

let mut buf = vec![];
data.read_to_end(&mut buf).await?;

match data.ty {
    DataType::Binary => println!("Data: {buf:?}"),
    DataType::Text => println!("Text: {:?}", String::from_utf8(buf)),
}

} ```

Ping-Pong Example

```rust use web_socket::{WebSocket, Event};

let mut ws = WebSocket::connect("ws://ws.ifelse.io").await?;

ws.onevent = Box::new(|ev| { if let Event::Pong() = ev { println!("Pong: {}", ev.to_string()); } Ok(()) });

for _ in 0..5 { ws.send(Event::Ping(b"Hello!")).await?; ws.send("Copy Cat!").await?;

let mut data = ws.recv().await?;

let mut buf = vec![];
data.read_to_end(&mut buf).await?;
println!("Text: {:?}", String::from_utf8(buf));

} ```

You can run this example by: cargo run --example ping_pong

Feature

Todo