1 个不稳定版本
0.1.0 | 2024年6月5日 |
---|
#261 in #real-time
5KB
SignalRs
SignalRs 是 Rust 对 SignalR 协议的实现。
SignalR 是一个开源协议,简化了将实时 Web 功能添加到应用程序中。实时 Web 功能允许服务器端代码即时向客户端推送内容。
这个库是这个协议客户端的 Rust 开源实现。最初在 Microsoft 的 .NET 生态系统中开发。更多信息请参阅 官方文档
。
从技术角度来说,它是一个具有双向流能力的 RPC 框架。
请查看相应的 crates 的 docs.rs 或 examples 文件夹,了解如何使用它。
为什么选择 SignalR
易用性
它允许使用易于使用的编程模型进行双向通信。在需要实时通信的情况下,它提供了一个易于使用的框架,抽象了底层的传输层。正确实现 WebSocket 并不是一件容易的事情。
与现有服务的集成
由于 SignalR 起源于 .NET 生态系统,有一些服务公开了 SignalR 终端。这个库允许轻松地与它们集成。这可能对主要使用 C# 的公司的内部工具尤其如此。坦白说,这也是创建这个库的原因。
功能 🚀
这个库功能不完整,也没有经过实战测试。目前适用于内部工具和个人项目。
如果您发现了一个错误或缺少的功能 - 请提交问题。
客户端
客户端目前支持
- 带有值和流参数调用服务器
- 发送消息并
- 不等待响应
- 等待单个响应
- 等待一系列响应
- 具有支持值参数的客户端端点
- WebSocket
- JSON
- 客户端目前不支持(尚不支持)
流参数到客户端端点
- LongPolling
- ServerSentEvents
- MsgPack
- 要查看客户端的源代码,请查看此存储库中的
signalrs-client
crate。
服务器
服务器仍在开发中。它已经相当高级并且可以运行,但尚未发布。要查看其源代码,请查看此存储库中的 signalrs-next
crate。
测试
使用
- 跨平台测试
- .NET 客户端实现
参考文献
协议的内部实现基于以下内容
依赖项
~1.5MB
~36K SLoC