SiganlR 系列之概述

2022-07-07 03:12:14 字數 1213 閱讀 9896

signalr 是微軟的 http 長連線(以下簡稱長連線)框架,它的出現為我們提供了一套行之有效的實時通訊的解決方案.

在http 1.0 時代,prerequest 都會建立新的tcp鏈結,如果高並請求情況下,拋開其它影響因素(比如服務端的io操作,db操作等), 其實是比較浪費效能.

那在http 1.1時代,傳輸層 tcp 請求連線做了優化,有了分組,和並,重用tcp連線通道.  提高了tcp的可靠性及處理效率,但即便如此還是會存在tcp 的三次握手準備.

我們知道http是無狀態通訊(歷史原因),而且是"請求-響應模式".即單工通訊. 這是很典型的短連線,但為了重用http的連線通道保持連線的可持續性,減少因為每次建立連線通道而損失的效能,提高響應時間,及時通訊,以及節省寬頻流量,避免輪詢操作,減少不必要伺服器資源浪費.長連線(服務推)模式應運而起.

總而言之長連線有兩個基本特徵:1:帶有狀態性,2:是乙個雙工雙工通訊的過程.

signalr是server-to-client 的結構,它提供了豐富的api及良好的擴充套件:

2:客戶端及服務端的身份認證

3:服務端的hub 及 perisistentconnection api 

4:服務端的依賴注入

5:服務端的aop

6:服務端的宿主工具.

1:瀏覽器應用包括:web form ,mvc ,wcf 等

可以看出 signalr 基本上支援所有的微軟的產品終端.除了微軟的系統外,同樣也支援android (可參看signala)

1:web sockets   html5 下的雙工通訊協議,瀏覽器版本低的話可能不支援.

2:server-sent events  服務推方式,是html5下的乙個功能, 基本上瀏覽器都支援,但ie不支援.

3:forever frame  我們常見的通過隱藏iframe 來於服務端通訊,此方式僅僅ie支援,而且要ie8+

4:ajax long polling   非同步輪訓請求服務端,所有的客戶端都支援.

這四種方式根據客戶端的環境自動切換(微軟已經封裝好api,你也可以指定某一種傳輸方式),這些環境因素包括  瀏覽器版本,net framework 版本,作業系統.《點選參看官網上平台支援》,

如果使用signalr 的話建議至少 win7+,iis7+,net framework4.0+;

作業系統系列之概述

對作業系統的研究已經很久了,一直以來比較喜歡這方面的東西,從現在開始,我要把我所了解的os的各個方面一一描述出來。基本的描述風格事先抽象後具體,先輪廓後細節。os其實是乙個大家都知道一些的概念。但是我說得有可能跟傳統的說法有些不一樣,我按照我的思路和節奏說這些問題。希望大家多提意見。說到os,一定要...

scilab系列 概述

scilab是一種程式語言,它與包含科學計算問題許多方面的大量數值演算法相關聯。從軟體的角度來看,scilab是一種解釋型語言。這通常會加快開發過程,因為使用者直接訪問高階語言,庫提供了豐富的功能集。scilab語言旨在進行擴充套件,以便使用者定義的資料型別可以通過可能過載的操作定義。scilab使...

linux核心程序排程系列之排程概述

多工作業系統分為非搶占式多工和搶占式多工。linux採用的是搶占式多工的模式,這就意味著程序對cpu的占用時間是由作業系統決定的,跟具體的說,由作業系統的程序排程程式所決定的,這個章節就介紹關於程序的排程策略。一 排程策略 1 其實程序的排程策略和程序的型別有關 第一種分配方法 cpu消耗型和i o...