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

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

SignalR 是一个开源项目,可实现从服务器到客户端的实时双向 Web 通信。使用 SignalR,您可以编写可以立即与客户端通信的服务器端代码。

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

SignalR provides an API for creating server-to-client remote procedure calls (RPC) that call JavaScript code in the client browsers (and other client platforms) from server-side .NET code. SignalR also includes an API for connection management (for instance, connect and disconnect events), and grouping connections.

SignalR can be used to add any sort of "real-time" web functionality to yourASP.NETapplication. Any time a user refreshes a web page to see new data, or the page implements long polling to retrieve new data, it is a candidate for using SignalR.

SignalsR provides an application programming interface (API) using which you can create server-to-client remote procedure calls (RPC). These RPCs allow server side C# code to call JavaScript functions on the clients.

SignalR Uses Various Technologies

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

  • 网络套接字

  • 服务器发送的事件

  • 长轮询

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

SignalR的应用

尽管聊天是用于 SignalR 的常见示例,但您可以做更多的事情。以下是 SignalR 的一些优秀应用。

  • 用户通知

  • 向客户发送高频更新

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

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

  • 游戏和娱乐应用

  • 警报机制