#协议 #SignalR #框架 #服务器 #客户端 #流式传输

signalrs-client

SignalR客户端,适用于Rust

2个版本

0.1.1 2023年4月12日
0.1.0 2022年11月14日

#180 in #流式传输

Download history 30/week @ 2024-03-09 2/week @ 2024-03-16 21/week @ 2024-03-30 2/week @ 2024-04-06 12/week @ 2024-04-27 13/week @ 2024-05-04 25/week @ 2024-05-11 45/week @ 2024-05-18 47/week @ 2024-05-25 32/week @ 2024-06-01 2/week @ 2024-06-08 29/week @ 2024-06-15 18/week @ 2024-06-22

每月 81 次下载

MIT 协议

77KB
1.5K SLoC

Docs.rs crates.io

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