SignalR实现web浏览器客户端与服务端的推送功能SignalR是一个集成的客户端与服务器库,基于浏览器的客户端和基于ASP
NET的服务器组件可以借助它来进行双向多步对话
换句话说,该对话可不受限制地进行单个无状态请求/响应数据交换;它将继续,直到明确关闭
对话通过永久连接进行,允许客户端向服务器发送多个消息,并允许服务器做出相应答复,值得注意的是,还允许服务器向客户端发送异步消息
它和AJax类似,都是基于现有的技术
本身是一个复合体
一般情况下,SignalR会使用Javascript的长轮询(longpolling),实现客户端和服务端通信
在WebSockets出现以后,SignalR也支持WebSockets通信
当然SignalR也使用了服务端的任务并行处理技术以提高服务器的扩展性
它的目标整个
NETFramework平台,它也不限Hosting的应用程序,而且还是跨平台的开源项目,支持Mono2
10+,觉得它变成是WebAPI的另一种实作选择,但是它在服务端处理联机的功能上比ASP
NETMVC的WebAPI要强多了,更重要的是,它可以在WebForm上使用
SignalR内的客户端库(
NET/JavaScript)提供了自动管理的能力,开发人员只需要直接使用SignalR的ClientLibrary即可,同时它的JavaScript库可和jQuery完美整合,因此能直接与像jQuery或Knockout
js一起使用
SignalR内部有两类对象:·PersistentConnection:持久性连接,用来解决长时间连接的能力,而且还可以由客户端主动向服务器要求数据,而服务器端也不需要实现太多细节,只需要处理PersistentConnection内所提供的五个事件:OnConnected,OnReconnected,OnReceived,OnE