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里看到新的項目模板。
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網站還是移動平台,這個框架應該都會對我們的開發工作帶來很大便利。
Securing SignalR to your site’s users
Using SignalR in MonoTouch and Mono for Android Apps
SignalR really changes everything
Real Time Commenting using SignalR and XSLT
[Xamarin] iOS 與Android結合SignalR
http://www.codeproject.com/Articles/584845/SignalR-as-a-Service
Pushing ETW events through SignalR
ASP.NET SignalR Basis Step by Step (Part 1)
ASP.NET SignalR Basis Step by Step (Part 2)

