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

signalrs-derive

为SignalR客户端提供派生宏

1个不稳定版本

0.1.0 2022年11月14日

#344 in #real-time

Download history 12/week @ 2024-03-14 11/week @ 2024-03-28 5/week @ 2024-04-04 15/week @ 2024-04-25 13/week @ 2024-05-02 27/week @ 2024-05-09 78/week @ 2024-05-16 47/week @ 2024-05-23 44/week @ 2024-05-30 16/week @ 2024-06-06 33/week @ 2024-06-13 28/week @ 2024-06-20 5/week @ 2024-06-27

96 每月下载量
用于 2 crates

MIT 许可证

5KB

SignalRs

SignalRs是Rust对SignalR协议的实现。

SignalR是一个开源协议,简化了向应用添加实时Web功能。实时Web功能使服务器端代码能够立即向客户端推送内容。

该库是该协议客户端的开源实现。最初在Microsoft的.NET生态系统中开发。更多详情请参阅官方文档

从技术角度来说,它是一个具有双向流能力的RPC框架。

请参阅相应crates的docs.rs或examples文件夹以了解如何使用。

为什么选择SignalR

易用性

它允许以易用的编程模型进行双向通信。在需要实时通信的情况下,它提供了一个易于使用的框架,抽象了底层传输层。正确使用WebSockets并非易事。

与现有服务的集成

由于SignalR起源于.NET生态系统,因此存在一些提供SignalR端点的服务。该库允许轻松与它们集成。这对于主要使用C#的公司来说可能尤其如此。说实话,这也是这个库最初被创建的原因。

特性 🚀

客户端

客户端目前支持

  • 使用值和流参数调用服务器
  • 发送消息并
    • 不等待响应
    • 等待单个响应
    • 等待一系列响应
  • 有一个支持
    • 值参数的客户端端点
  • WebSockets
  • JSON

客户端不支持(目前)

  • 流参数到客户端端点
  • LongPolling
  • ServerSentEvents
  • MsgPack

要查看客户端的源代码,请参阅此仓库中的signalrs-client crate。

服务器

服务器仍在开发中。它已经相当高级并且可以运行,但尚未发布。要查看其源代码,请参阅此仓库中的signalrs-next crate。

测试

  • 使用以下跨平台测试
    • .NET客户端实现

参考

根据以下内容实现了协议的内部实现

依赖项

~1.5MB
~35K SLoC