SignalR為高性能Web實時通訊提供強大支持
岳哥說
ASP.NET SignalR2.0對常用實時通訊技術進行了封裝, SignalR當WebSocket可用時優先使用新式的WebSocket傳輸,同時也兼容老式的傳輸。
本文主要來講SignalR為高性能Web實時通訊提供強大支持。
一,Web實時通信技術簡介
1.Web端實時通訊技術
實時通訊技術簡單的說就是實現這樣一種功能:伺服器端可以實時地將數據的更新或變化反應到客戶端,例如消息實時推送等功能都是通過這種技術實現的。但是在Web中,由於瀏覽器的限制,實現實時通訊需要藉助一些方法。這種限制出現的主要原因是,一般的Web通信都是瀏覽器先發送請求到伺服器,伺服器再進行響應完成數據的現實更新。
2.實現Web端實時通訊的方法
實現實時通訊主要有四種方式,它們分別是短輪詢、長輪詢(comet)、長連接(SSE)、WebSocket。它們大體可以分為兩類,一種是在HTTP基礎上實現的,包括短輪詢、comet和SSE;另一種不是在HTTP基礎上實現是,即WebSocket。
3.四種Web實時通信技術比較
從兼容性角度考慮,短輪詢>長輪詢>長連接SSE>WebSocket;
從性能方面考慮,WebSocket>長連接SSE>長輪詢>短輪詢
4. Web實時通訊技術的使用場景:
Web聊天室
Web IM
股票信息
實時數據報表
Web在線遊戲
…
二,SinalR簡介
1.SinalR & WebScoket
ASP.NET SignalR2.0對常用實時通訊技術進行了封裝, SignalR當WebSocket可用時優先使用新式的WebSocket傳輸,同時也兼容老式的傳輸。
SignalR支持以一種簡單的API來創建伺服器到客戶端的遠程調用客戶端的Javascript方法,SignalR還包括用於用於連接管理的API和分組連接。
2. SignalR 的實現機制
SignalR 的實現機制與 .NET WCF 或 Remoting 是相似的,都是使用遠程代理來實現。在具體使用上,有兩種不同目的的介面:PersistentConnection 和 Hubs,其中 PersistentConnection 是實現了長時間的 JavaScript 輪詢(類似於 Comet),Hub 是用來解決實時信息交換問題,它是利用 javascript 動態載入執行方法實現的。SignalR 將整個連接,信息交換過程封裝得非常漂亮,客戶端與伺服器端全部使用 JSON 來交換數據。
3.SignalR傳輸和回滾
SignalR是對一些伺服器和客戶端之間實時協作傳輸的抽象化,一個SignalR連接作為一個HTTP開始,但是如果WebSocket是可用的將得到利用。WebSocket是SignalR理想的傳輸方法,它能高效的利用服務端存儲,擁有最少的延遲,而且擁有最基礎的功能(比如全雙工通信),但是它也同時又嚴格的要求:WebSocket必須要求伺服器使用Windows Server 2012或者windows 8,使用.NET Framework 4.5框架,如果沒有達到這些條件,SignalR將試圖使用其他的傳輸來創建連接。
4.HTML5 傳輸協議
這些傳輸依賴於對HTML5的支持,假如客戶端不支持HTML5標準,講使用老式的傳輸協議:
WebSocket:(如果客戶端可伺服器端都支持WebSocket)。WebSocket是唯一一個建立客戶端和伺服器端在真正的持久的雙工的傳輸協議,但是同時WebSocket也擁有嚴格的要求,它只在最新版本的IE、chrome和FireFox得到支持,在像Opera和Safari這些瀏覽器中得到的一部分的實現。
伺服器發送事件:也稱為事件源。基本上除了IE以外都支持事件源。
下篇預告:傳輸協議選擇過程;指定傳輸協議;連接和匯流排;體系結構關係圖。
關註:
weikejia11
關不住的新思路!
點擊展開全文
※蘋果可能取消打賞抽成,互聯網公司們的成功博弈
※一步一步教你如何做一個網站
※共享床鋪,還有什麼是不能共享的?
※大熱天的,這兒有幾條祖傳的「降溫秘籍」
※舒克舒克舒克舒克舒克舒克舒克舒克,開飛機的舒克
TAG:微客加互動 |
※SmartMesh,MeshBox與RSK攜手構建無網通訊支付生態
※華勤通訊榮獲微軟「Million Units Device Shipment」等兩項重量級大獎
※Facebook推出全新通訊應用Threads,正面狙擊Snapchat
※SKM 受邀參加矽谷 MONage 峰會,與 SKM 的顧問/通訊界大牛 Jeff Pulver 深度交流
※榮耀Magic 2首發Link Turbo:實現Wi-Fi/移動網路聚合通訊
※watchOS帶來全新通訊功能 把Apple Watch變成對講機
※Android Things 教程:與低功耗藍牙 BLE 設備進行通訊——Android 部分
※即時通訊平台Line推出信用評分服務Line Score
※Stories、即時通訊和視頻業務,Facebook 扛起三面大旗走進新時代
※TCL通訊推出Alcatel 1 再添一款Android Oreo(Go版)手機
※Stories、即時通訊和視頻業務,Facebook 扛起三面大旗走進新時代 | Global 24/7
※Fantastical 團隊新作,這絕對是 iOS 上最漂亮的通訊錄 App
※使用Strophe.js基於xmpp服務實現即時通訊
※兩周定下CTO與通訊副總裁,Coinbase又聘請Alesia Haas任CFO
※即時通訊巨頭Kik Messenger將推首個支持雙向網路的加密貨幣KIN
※首批即時通訊應用,YahooMessenger正式退出歷史舞台
※watchOS 5升級內容一覽:鍛煉和通訊功能增強
※睿思科技(Fresco Logic)推出創新的F-One多通訊協議信號聚合技術
※Google Assistant可念出第三方通訊應用消息內容
※睿思科技(Fresco Logic)推出創新的F-One?多通訊協議信號聚合技術