什么是 SignalR 以及如何使用它?


在典型的 Web 应用程序中,通信流程是单向的,即从客户端到服务器。客户端向服务器发起请求,服务器执行某些任务,并将响应发送回客户端。

SignalR 是一个开源项目,它允许服务器与客户端之间进行实时、双向的 Web 通信。使用 SignalR,您可以编写能够立即与客户端通信的服务器端代码。

SignalR 简化了向 Web 应用程序添加实时 Web 功能的过程,服务器代码可以在可用时立即将内容推送到连接的客户端。这使客户端无需反复轮询服务器,并且服务器无需等待客户端请求新数据。

SignalR 提供了一个 API,用于创建服务器到客户端的远程过程调用 (RPC),这些调用从服务器端 .NET 代码调用客户端浏览器(和其他客户端平台)中的 JavaScript 代码。SignalR 还包括一个用于连接管理(例如,连接和断开连接事件)和分组连接的 API。

SignalR 可用于向您的 ASP.NET 应用程序添加任何类型的“实时”Web 功能。任何时候用户刷新网页以查看新数据,或者页面实现长轮询以检索新数据,都是使用 SignalR 的候选者。

SignalR 提供一个应用程序编程接口 (API),您可以使用它来创建服务器到客户端的远程过程调用 (RPC)。这些 RPC 允许服务器端 C# 代码调用客户端上的 JavaScript 函数。

SignalR 使用多种技术

SignalR 使用多种技术来处理服务器到客户端的实时通信,例如:

  • WebSockets

  • 服务器发送事件 (Server-Sent Events)

  • 长轮询 (Long Polling)

它会根据服务器和客户端的功能自动选择最佳传输方法。

SignalR 的应用

虽然聊天是 SignalR 的常用示例,但您可以做的远不止这些。以下是 SignalR 的一些优秀应用。

  • 用户通知

  • 向客户端发送高频更新

  • 包含实时图表和图形的仪表板

  • 协作应用程序,例如聊天和消息服务

  • 游戏和娱乐应用程序

  • 警报机制

更新于:2021年6月22日

3K+ 次浏览

开启您的 职业生涯

完成课程获得认证

开始学习
广告