1 个不稳定版本
0.22.2 | 2024 年 5 月 22 日 |
---|
#161 在 WebSocket
95KB
2K SLoC
async-tungstenite
为 async-std, tokio, gio 和任何 std
Future
运行时提供异步 WebSocket。
使用方法
在您的 Cargo.toml
中添加此内容
[dependencies]
async-tungstenite = "*"
查看 examples/
目录以获取客户端和服务器示例。如果您不熟悉 async-std 或 tokio,您可能需要熟悉它们。
什么是 async-tungstenite?
此 crate 基于 Rust WebSocket 库 tungstenite,并为其提供异步绑定和包装,因此您可以使用它与非阻塞/异步的 TcpStream
,并将其与其他异步堆栈中的 crate 相结合。此外,可以通过功能标志启用与各种其他 crate 的可选集成
async-tls
:启用async_tls
模块,它提供与 async-tls TLS 堆栈的集成,并且可以独立于任何异步运行时使用。async-std-runtime
:启用async_std
模块,它提供与 async-std 运行时的集成。async-native-tls
:启用async_std
模块中实现 TLS 的附加功能,通过 async-native-tls。tokio-runtime
:启用tokio
模块,它提供与 tokio 运行时的集成。tokio-native-tls
:启用tokio
模块中实现 TLS 的附加功能,通过 tokio-native-tls。tokio-rustls-native-certs
:启用tokio
模块中实现 TLS 的附加功能,通过 tokio-rustls 并使用 rustls-native-certs 找到的本地系统证书。tokio-rustls-webpki-roots
:启用在tokio
模块中通过tokio-rustls实现TLS的附加功能,并使用webpki-roots提供的证书。gio-runtime
:启用gio
模块,该模块提供与gio运行时的集成。
消息与流
WebSocket提供了一种面向消息的协议,此crate支持通过消息发送和接收数据;基于WebSocket构建的协议允许使消息边界在语义上变得重要。然而,一些WebSocket用户可能希望将套接字视为一个连续的字节流。如果您知道发送端不关注消息边界,并且您希望在忽略这些边界的情况下处理字节流,请尝试基于此crate构建的ws_stream_tungstenite
。
tokio-tungstenite
最初,这个crate是作为tokio-tungstenite的分支创建的,并将其移植到futures
crate的特性和功能之上。在此基础上,增加了与async-std、tokio和gio的集成。
依赖项
~2–18MB
~264K SLoC