SignalR 學習

  ASP.NET SignalR 是爲ASP.NET開發人員提供的一個庫,能夠簡化開發人員將實時web功能添加到應用程序中,實時web功能是指:當所鏈接的全部客戶端在可用狀況下,服務器代碼能夠當即向其推送內容,而不是讓服務器等待客戶端請求數據。javascript

  SignalR能夠將任何種類的「實時web功能」添加到您的asp.net程序中。雖然咱們常常把聊天應用做爲最經常使用的的例子,若是用戶是經過刷新界面或經過長輪詢來,來查看新的數據,能夠考慮使用SignalR,其餘應用場景包括像監視系統、儀器儀表、工做進度更新、實時表單、協做應用程序(例如同時編輯文檔)等待java

  SignalR還適合於全新類型的web應用程序,特別是須要從服務器高頻率更新的應用程序,例如實時遊戲,一個好的例子,請參閱ShootR遊戲。web

  SignalR提供一個簡單API用於出建立服務器端到客戶端的遠程過程調用(RPC),以便從服務器端.net代碼中調用遠程客戶端瀏覽器的(或其餘遠程客戶端)javascript函數。SignalR還包括用於管理鏈接和爲鏈接分組的API。瀏覽器

 

  SignalR會自動管理鏈接,並像聊天室同樣能夠向全部客戶端同時發送消息。也能夠向特定客戶端發送消息。客戶端和服務器的鏈接是持久性的,不像HTTP鏈接,每一個通訊都要從新創建鏈接。服務器

  SignalR支持「服務器推送功能」,即服務器可使用遠程過程調用(RPC)來調用瀏覽器的客戶端代碼,而不使用目前WEB經常使用的「請求-響應」模式。websocket

  SignalR是開源的,能夠經過GitHub訪問。asp.net

  SignalR和WebSocketsocket

  SignalR會在可能的狀況下使用新的websocket傳輸方式,並在須要時回退到舊的傳統傳輸方式。雖然您仍然可使用websocket編寫應用程序,但使用SignalR意味着您有許多現成的額外功能可用,而無需本身實現這些功能。而更重要的是,您能夠利用SignalR編寫應用程序以利用WebSocket,而無需擔憂爲舊的客戶端單首創建代碼,SignalR還使您沒必要擔憂WebSocket的更新。由於SignalR會持續更新以支持基礎傳輸協議的改變,爲您的應用程序提供一致的接口以使用不一樣的WebSocke版本。固然您能夠建立只使用WebSocket的解決方案。SignalR爲您提供了可能須要自行編碼的全部功能。例如回退到其餘的傳輸方式以及修訂您的應用程序以更新到websocket實現。函數

     傳輸和回退編碼

SignalR是對一組在構建服務器和客戶端的「Real-Time」功能所須要使用的傳輸技術的抽象。SignalR傳輸首先以HTTP發起請求,若是WebSocket可用的化,則升級到WebSocket鏈接,WebSocket是SignalR的理想鏈接方式,由於它能最高效的使用服務器內存、有最低的延遲,並且有最主要的功能(如服務器和客戶端之間的全雙工通訊),但它也有最嚴格的環境需求:WebSocket要求服務器是Windows Server 2012或Windows 8以及.net framework 4.5 若是不符合這些要求,SignalR將使用其餘傳輸方式創建鏈接。

相關文章
相關標籤/搜索