2个版本
0.1.1 | 2023年4月12日 |
---|---|
0.1.0 | 2022年11月14日 |
#180 in #流式传输
每月 81 次下载
77KB
1.5K SLoC
SignalRs
SignalRs是Rust对SignalR协议的实现。
SignalR是一个开源协议,它简化了将实时Web功能添加到应用程序的过程。实时Web功能允许服务器端代码即时向客户端推送内容。
这个库是这个协议客户端的Rust开源实现。最初在Microsoft的.NET生态系统中开发。更多关于它的信息可以在官方文档
中找到。
从技术角度来说,它是一个具有双向流能力的RPC框架。
请参阅相应的crates的docs.rs或examples文件夹,以了解如何使用它。
为什么选择SignalR
易用性
它允许使用易用的编程模型进行双向通信。在需要实时通信的情况下,它提供了一个易于使用的框架,抽象了底层的传输层。正确使用WebSockets并不容易。
与现有服务的集成
由于SignalR起源于.NET生态,有一些服务暴露了SignalR端点。这个库允许轻松与它们集成。这可能对于主要使用C#的公司的内部工具尤其如此。说实话,这也是创建这个库的原因之一。
特性 🚀
这个库功能并不全面,也不是经过实战测试的。目前适用于内部工具和个人项目。
如果您发现了一个错误或缺少功能,请提交问题。
客户端
客户端目前支持
- 调用服务器,带有值和流参数
- 发送消息,
- 不等待响应
- 等待单个响应
- 等待响应流
- 客户端端点支持
- 值参数
- WebSockets
- JSON
客户端目前不支持(尚未支持)
- 流参数到客户端端点
- 长轮询
- 服务器端事件
- MsgPack
要查看客户端的源代码,请查看此仓库中的signalrs-client
crate。
服务器
服务器仍在开发中。它已经相当高级并且可以运行,但尚未发布。要查看其源代码,请查看此仓库中的signalrs-next
crate。
测试
- 使用以下方式进行跨平台测试
- .NET客户端实现
参考资料
该协议的内部实现基于以下内容
依赖项
~14–32MB
~585K SLoC