4个版本 (2个破坏性更新)
0.7.0 | 2023年5月7日 |
---|---|
0.6.0 | 2023年3月30日 |
0.5.1 | 2023年3月28日 |
0.4.2 |
|
0.1.0 |
|
#8 in #ws
每月139次下载
27KB
466 行
简介
这个库是WebSocket协议的实现,该协议提供了一种在单个TCP连接上客户端和服务器之间双向通信的方式。此库为客户端和服务器端应用程序提供最快和直观的WebSocket实现。
安装
要使用此库,请将其添加到Rust项目的依赖项中,在您的Cargo.toml
文件中添加以下行
[dependencies]
web-socket = "0.7"
示例
您可以使用以下命令运行此示例:cargo run --example minimal
use tokio::io::*;
use web_socket::*;
async fn example<IO>(mut ws: WebSocket<IO>) -> Result<()>
where
IO: Unpin + AsyncRead + AsyncWrite,
{
for _ in 0..3 {
ws.send("Copy Cat!").await?;
match ws.recv_event().await? {
Event::Data { ty, data } => {
assert!(matches!(ty, DataType::Complete(MessageType::Text)));
assert_eq!(&*data, b"Copy Cat!");
}
Event::Ping(data) => ws.send_pong(data).await?,
Event::Pong(..) => {}
Event::Error(..) => return ws.close(CloseCode::ProtocolError).await,
Event::Close { .. } => return ws.close(()).await,
}
}
ws.close("bye!").await
}
有关更多示例,请参阅./examples目录。
它通过了autobahn测试套件的所有测试。
许可证
本项目受Apache License 2.0许可。
依赖关系
~2.4–3.5MB
~54K SLoC