實現推送服務的ASP.NET開源項目 - SignalR

jopen 12年前發布 | 91K 次閱讀 SignalR .NET開發

SignalR 是 ASP.NET 團隊正在開發的一個 Microsoft .NET Framework 庫和 jQuery 插件,可能包括在以后版本的 ASP.NET 平臺中。 它提供了一些前景極為光明的功能,而這些功能正是 .NET Framework 當前不曾具有的,并且是越來越多的開發者所需要的。

SignalR 是一個集成的客戶端與服務器庫,基于瀏覽器的客戶端和基于 ASP.NET 的服務器組件可以借助它來進行雙向多步對話。 換句話說,該對話可不受限制地進行單個無狀態請求/響應數據交換;它將繼續,直到明確關閉。 對話通過永久連接進行,允許客戶端向服務器發送多個消息,并允許服務器做出相應答復,值得注意的是,還允許服務器向客戶端發送異步消息。它和AJax類似,都是基于現有的技術。本身是一個復合體。一般情況下,SignalR會使用Javascript的長輪詢( long polling),實現客戶端和服務端通信。在WebSockets出現以后,SignalR也支持WebSockets通信。當然SignalR也使用了服務端的任務并行處理技術以提高服務器的擴展性。

任何一個技術的出現都是為了解決特定的問題。SignalR也不例外。我們知道網站開發中最長見到的一個功能就是在線聊天室。現在的網上的大部分在線聊天室都是基于2種技術,1.AJAX 2.Flash.

聊天室要解決最大的問題就是 消息的推送。當N個在線用戶 同時加入一個聊天室時,1個用戶發送消息,服務端就要把這個消息轉發給特定的人。

之前的技術都是通過Javascript來不停地發送請求來輪訓 服務端的新的消息。這種定期發送Ajax請求給服務器的方式,在用戶很大的情況下給服務器帶來很大的壓力。

WebSockets這個技術的出現,很好地解決了這個問題,恰恰支持可以主動推送消息,SignalR 支持WebSockets。我們可以看到未來網絡應用中會大量出現自己吃WebSockets的程序,而SignalR應該也會廣泛在ASP.NET 網站中出現。

項目官網:http://signalr.net/ 

GitHub:https://github.com/SignalR/SignalR 

轉自:http://www.cnblogs.com/shanyou/archive/2012/04/14/2447750.html
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!