SignalR类似与JavaScript实时框架,如​​Socket.IO​​​。SignalR能够完成客户端向服务器的异步通信,并同时支持服务器向浏览器客户端推送事件。SignalR的连接通过​​日益流行的WebSockets​​​ API完成,而如果​​WebSockets无法使用​​​,它会透明地回落为​​长轮询技术​​​(long-polling technique)。如果开发人员想使用Signal,需要在客户端层使用像jQuery的JavaScript框架,并在服务端层使用.NET代码编写应用和服务。SignalR具有多种编程模型(​​PersistentConnections​​​ 和​​Hubs​​),它为开发人员提供了连接、消息接收群以及事件处理器的不同层次的访问。

SignalR显示已经可在单台机器上扩展至上万个连接,同时可以通过service bus和redis 以及sql server 实现可扩展的集群部署,具体参看​​Microsoft ASP.NET SignalR​​。

我们可以下载​​ASP.NET 2012 Fall Update​​​安装包(​​http://www.microsoft.com/en-us/download/details.aspx?id=35493​​),安装完毕以后,就可以在 Visual Studio里看到新的项目模板。

Microsoft ASP.NET SignalR_microsoft


SignalR 包括一些针对不同功能的类库,下载安装可以看到一下几个主要项目:

  • Microsoft.AspNet.SignalR – meta package (use this)
  • Microsoft.AspNet.SignalR.Client – .NET 4 and WinRT client
  • Microsoft.AspNet.SignalR.JS – The Javascript client.
  • Microsoft.AspNet.SignalR.Core – Core server package with no host implementation
  • Microsoft.AspNet.SignalR.Hosting.AspNet – The ASP.NET host
  • Microsoft.AspNet.SignalR.Hosting.Utils – utilities for signalr (signalr.exe)
  • Microsoft.AspNet.SignalR.Redis – Redis message bus implementation
  • Microsoft.AspNet.SignalR.ServiceBus – Service bus message bus implementation

GItHUb上的地址:​​https://github.com/SignalR/SignalR​

安装也很简单,另外一种方式可以通过控制台安装:To install Microsoft ASP.NET SignalR, run the following command in the ​​Package Manager Console​

​PM> Install-Package Microsoft.AspNet.SignalR​

ASP.NET SignalR 目前还在持续不断更新完善中,这个框架目前还没正式集成到.NET框架里。不过作为Web开发,实时同时,客户端和服务端双工通信这也是非常重要的需求。无论是传统Web网站还是移动平台,这个框架应该都会对我们的开发工作带来很大便利。