| 什么是SignalR?ASP.NET SignalR 是為.NET 開發(fā)者提供即時通訊Web 應(yīng)用的類庫。即時通訊Web服務(wù)就是服務(wù)器將內(nèi)容自動推送到已經(jīng)連接的客戶端,而不是服務(wù)器等待客戶端發(fā)起一個新的數(shù)據(jù)請求。 SignalR能夠被運用到各種類型的即時響應(yīng)應(yīng)用。你完全可以運用SignalR實現(xiàn)一個在線即時聊天應(yīng)用。當然SignalR也運用在用戶需要隨時更新數(shù)據(jù)的網(wǎng)頁運用,比如儀表盤和監(jiān)控運用,其他協(xié)同應(yīng)用程序(文檔協(xié)同操作)、工作流更新或者是即時表格。 SignalR同樣也被運用在一些需要高頻繁從服務(wù)器更新的應(yīng)用,比如實時在線游戲。有個很好的示例可以參考ShootR game。 SignalR 提供了使用JavaScript API 方法創(chuàng)建服務(wù)器對客戶端的遠程過程調(diào)用協(xié)議(RPC)的,它能夠讓你從客戶端瀏覽器(或者其他平臺)從.NET服務(wù)端發(fā)起遠程調(diào)用。SignalR 同樣提供了管理遠程連接和連接組的API方法。 
 SignalR 不僅能夠自動管理連接,而且能夠同時向所有的客戶端廣播消息,就像聊天室一樣。你也能夠發(fā)送消息到指定的客戶端。SignalR提供的連接是持久的,它不像傳統(tǒng)的HTTP連接需要為每次收發(fā)消息建立單獨的連接。 SignalR 同時在服務(wù)端提供了遠程過程調(diào)用協(xié)議(RPC),讓你能夠“主動”推送消息到瀏覽器中的客戶端,而不像普通的Web服務(wù)一樣的應(yīng)答方式。 SignalR 應(yīng)用能夠運用到成千的客戶端上,通過使用服務(wù)總線、SQL Server或者Redis。 SignalR 是開源的,能夠通過GitHub很容易得到。 SignalR 和 WebSocket你可以使用SignalR 使用最新的WebSocket 傳輸,同時也能夠讓你回退到原有的傳輸方式。你可以直接使用SignalR 使用 WebSocket,因為SignalR 已經(jīng)替你封裝好許多你需要實現(xiàn)的方法。最重要的是你使用SignalR不用擔心為老的客戶端實現(xiàn)WebSocket而采用兩套不同的邏輯編碼方式。使用SignalR 實現(xiàn)WebSocket你不用擔心 WebSocket的更新而去修改代碼,SignalR會在傳輸方式上使用WebSocket最新的傳輸方式,同時提供了一連串的接口能夠讓你來支持不同版本的客戶端。 當你想創(chuàng)建一個純粹的WebSocket解決方案的時候,SignalR 提供了所有的方法,比如回退到其他傳輸方式或者更新到WebSocket 的實現(xiàn)方法。 | 
|  |