當前位置:
首頁 > 最新 > SignalR為高性能Web實時通訊提供強大支持

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?多通訊協議信號聚合技術