《ASP.NET SignalR系列》第一課 認識SignalR


從現在開始相關文章請到: http://lko2o.com/moon

一、概述

  ASP.NET signalr對ASP.NET開發者來說是一個新的程序庫,它能讓我們更加容易便捷地開發實時通信功能;

signalr允許客戶端和服務器之間雙向通信。服務器可以將內容推送到已連接的客戶端。

signalr支持Web Sockets,遇到其他兼容舊的瀏覽器signalr會用其他技術支持"雙向通信"(不要較真)。

signalr包括這些API:連接管理(例如,連接和斷開連接的事件)、對連接分組、和訪問功能授權。

二、認知隨談

  signalr可以用來添加任何形式的“實時通信”功能到您的ASP.NET應用程序。聊天是經常被用來作為一個應用例子,當然你可以做更多的事情。

用戶常常通過刷新網頁來查看新數據,或者頁面支持長輪詢來檢索新的數據,使用signalr機制中支持這個方式,但它更智能更強大友好。

SignalR同時支持新類型的網絡應用情況:需要高頻度從服務端更新的情況(如實時游戲、看看這個ShootR game.)

SignalR提供了更加便捷簡單的API,

1.這些API可以用來創建服務端和客戶端之間的遠程調用.

服務端代碼可以調用瀏覽器上的javascript函數{包括其他的平台};

當然客戶端也有可調用服務端的方法(這個大家好理解)

2.這些API可以:連接管理(例如,連接和斷開連接的事件)、對連接分組、和訪問功能授權。

Invoking methods with SignalR

這兩幅圖,描述了客戶端和服務端之間的相互調用

三、進一步了解

  signalr可以自動化處理連接管理,這可以讓你在一個時間點廣播消息到所有連接的客戶端,

如同聊天室這樣的情況。你也可以把消息發送給特定的客戶。客戶端和服務器之間的連接是持久的,不同於經典的HTTP連接需要重新建立各通信。

signalr支持“服務器推送”功能,如上圖講到的那樣可以對客戶端進行RPC調用,不同於大家熟知的應答模式

signalr是開源的,可以通過 GitHub 獲取源碼.

四、SignalR和WebSocket的關系

  signalr會自動地使用websocket通信(只要條件允許),條件不滿足的時候也會自動使用其他舊的傳輸方式。當然你可以直接讓你的程序直接使用WebSocket.

使用signalr意味着原先你需要自己花精力做的工作不需要再自己做了,因為它已經為你做了。最重要的是,它會持續更新跟進WebSocket技術,所以你不用擔心

協議變化這類事情.

  signalr是對客戶端和服務器之間通信方式的一個抽象。一個signalr啟動時使用HTTP連接,然后當環境允許就會直接提升到WebSocket連接。
WebSocket是SignalR的理想通信方式,因為WebSocket使服務器的內存得到最有效的利用,同時WebSocket具有最低的延遲,並擁有最底層特征(如客戶端和服務器之間的全雙工通信),但WebSocket也有最嚴格的要求:WebSocket需要服務器使用Windows Server 2012或Windows 8,和.NET框架4.5。如果不能滿足這些要求,signalr將嘗試使用其他通訊方式進行連接。

五、內置技術的使用步驟

下面的列表展示了SignalR決定使用具體哪種通信方式

  1. 如果瀏覽器<=Internet Explorer 8,用長輪詢的方式
  2. 如果配置中指定了使用jsonp,則會使用長輪詢的方式
  3. 如何需要創建跨域連接,將會如使用WebSocket,如果一下條件滿足的話(否則用長輪詢)
    1. 客戶端支持WebSocket
    2. 服務端支持WebSocket
    3. 客戶端支持Cross-Origin Resource Sharing,這個大家自己百度

接着下一章:《ASP.NET SignalR系列》第二課 SignalR的使用說明

兄台,為了提升我寫作的熱情,求支持推薦和關注,祝你玉樹臨風、氣度不凡


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM