3 个不稳定版本
0.2.0 | 2024 年 4 月 15 日 |
---|---|
0.1.1 | 2023 年 7 月 17 日 |
0.1.0 | 2023 年 6 月 7 日 |
#530 在 异步
每月 154 次下载
17KB
160 行
PipeBuf
对 websockets 的支持
这仅处理 websocket 协议,与传输或任何其他协议层(如 TLS)无关。因此,它可以与其他 crate(如 pipebuf_mio
或 pipebuf_rustls
)结合使用以满足不同需求。它还支持协议检测,因此如果数据看起来不是一个有效的 websocket 连接,则可以将其传递给另一个协议处理程序,如 HTTP。
文档
请参阅 crate 文档。
许可
本项目根据 Apache License 版本 2 或 MIT 许可证授权,由您选择。(见 LICENSE-APACHE 和 LICENSE-MIT)。
贡献
除非您明确声明,否则您提交给本项目包含在 crate 中的任何贡献,根据 Apache-2.0 许可证定义,均应双许可,没有额外的条款或条件。
lib.rs
:
PipeBuf
对 embedded-websocket 的包装
这仅处理 websocket 协议,独立于传输。因此,它可以与 pipebuf_mio
或 pipebuf_rustls
或其他 crate 结合使用以满足不同需求。
这是高效的,因为 embedded-websocket 提供了一个基于切片的接口,并在调用者提供的缓冲区之间工作。因此,它非常适合被 PipeBuf
包装。由于 websocket 允许通过片段流式传输消息数据,因此在这里将消息处理为一个管道缓冲区,允许调用者如果需要的话也流式传输数据。
在发送端,每次发送消息后都指示“推送”。
待办:支持使用 WebsocketClient
包装器进行客户端支持。(与现有代码类似,但需要进行测试。)
待办:将其重写为基于原生PipeBuf的websocket实现,该实现对于Ping/Pong/Close操作仅消耗完整帧(有上限),以简化问题。消息内容仍然可以流式传输。另请参阅 Autobahn测试套件。
依赖项
~1MB
~23K SLoC