6个版本
0.1.7 | 2024年6月7日 |
---|---|
0.1.6 | 2024年6月6日 |
#125 in #streaming
82KB
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客户端实现进行跨平台测试
参考
协议的内部实现基于以下内容
依赖关系
~15–29MB
~561K SLoC