大家好, ws-tool 项目 0.3.0 版本发布了, ws-tool 是一个基于 tokio 的 rust websocket 库, 你可以用它来创建客户端或服务端. 相比于 0.2 版本, 0.3 对接口进行了重构, 使其更方便使用. 目前提供功能有
客户端例子, 来自 echo 省略准备的代码, 创建一个 websocket 代码如下
let mut builder = ClientBuilder::new(&args.uri);
if let Some(cert) = args.cert {
builder = builder.cert(cert);
}
if let Some(proxy) = args.proxy {
builder = builder.proxy(&proxy)
}
let mut client = builder
.connect_with_check(default_string_check_fn)
.await
.unwrap();
while let Some(Ok((_, msg))) = client.next().await {
// read write message here
}
服务端例子, 来自server 同样省略了一些准备代码
for (stream, addr) in listener.accept().await {
tracing::info!("got connect from {:?}", addr);
let mut server = ServerBuilder::accept(
stream,
default_handshake_handler,
default_string_codec_factory,
)
.await
.unwrap();
while let Some(Ok((code, msg))) = server.next().await {
if code == OpCode::Close {
break;
}
server.send(msg).await.unwrap();
}
使用代理的例子可以参考 binance
split 客户端的例子可以参考 split_binance
欢迎提issue或PR
https://privaterookie.github.io/ws-tool/