#signal-r #client #protocols #macro #real-time

signalrs-derive-custom-auth

SignalR 客户端 Rust 宏

1 个不稳定版本

0.1.0 2024年6月5日

#261 in #real-time

MIT 许可证

5KB

Docs.rs crates.io

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