SignalR 是什么以及如何使用它?
在典型的Web应用程序中,通信流是单向的,即从客户端到服务器。客户端向服务器发起请求,服务器执行一些任务,并将响应发送给客户端。
SignalR是一个开源项目,可实现从服务器到客户端的实时双向Web通信。使用SignalR,您可以编写可以立即与客户端通信的服务器端代码。
SignalR简化了向Web应用程序添加实时Web功能的过程,其中服务器代码在内容可用时立即将其推送到连接的客户端。这使客户端免于重复轮询服务器,并使服务器等待客户端请求新数据。
SignalRprovidesanAPIforcreatingserver-to-clientremoteprocedurecalls(RPC)thatcallJavaScriptcodeintheclientbrowsers(andotherclientplatforms)fromserver-side.NETcode.SignalRalsoincludesanAPIforconnectionmanagement(forinstance,connectanddisconnectevents),andgroupingconnections.
SignalRcanbeusedtoaddanysortof"real-time"webfunctionalitytoyourASP.NETapplication.Anytimeauserrefreshesawebpagetoseenewdata,orthepageimplementslongpollingtoretrievenewdata,itisacandidateforusingSignalR.
SignalsRprovidesanapplicationprogramminginterface(API)usingwhichyoucancreateserver-to-clientremoteprocedurecalls(RPC).TheseRPCsallowserversideC#codetocallJavaScriptfunctionsontheclients.
SignalRUsesVariousTechnologies
SignalR使用各种技术来处理从服务器到客户端的实时通信,例如:
网络套接字
服务器发送的事件
长轮询
它会根据服务器和客户端的能力自动选择最佳传输方法。
SignalR的应用
尽管聊天是用于SignalR的常见示例,但您可以做更多的事情。以下是SignalR的一些优秀应用。
用户通知
向客户发送高频更新
包含实时图表和图形的仪表板
协作应用程序,例如聊天和消息服务
游戏和娱乐应用
警报机制