背景說明
- HTTP 協議有一個缺陷:通信只能由客戶端發起。這種單向請求的特點,注定了如果服務器有連續的狀態變化,客戶端要獲知就只能使用"輪詢"的方案。
- 輪詢是在特定的時間間隔(如每1秒),由瀏覽器對服務器發出HTTP請求,然后由服務器返回最新的數據給客戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向服務器發出請求,顯而易見,輪詢不僅效率特別低,且特別浪費帶寬資源,因為HTTP請求可能包含較長的頭部,其中真正有效的數據可能只是很小的一部分,顯然這樣會浪費很多帶寬資源。
- 因此,工程師們一直在思考,有沒有更好的方法。websocket就是這樣發明的。websocket協議誕生于2008年,2011年成為國際標準,目前所有瀏覽器均已支持。它最大的特點全雙工通信,瀏覽器和服務器只需要做一個握手的動作,然后瀏覽器和服務器之間就形成了一條快速通道,兩者之間就可以直接互相傳送數據了,如下右圖所示。可見,websocket協議,能更好的節省服務器資源和帶寬,并且能夠更實時地進行通訊。
websocket的優勢:
- 較少的控制開銷:在連接創建后,服務器和客戶端之間交換數據時,用于協議控制的數據包頭部相對較小。
- 更強的實時性:由于協議是全雙工的,所以服務器可以隨時主動給客戶端下發數據。相對于HTTP請求需要等待客戶端發起請求服務端才能響應,延遲明顯更少;即使是和Comet等類似的長輪詢比較,其也能在短時間內更多次地傳遞數據。
- 保持連接狀態:與HTTP不同的是,websocket需要先創建連接,這就使得其成為一種有狀態的協議,之后通信時可以省略部分狀態信息。而HTTP請求可能需要在每個請求都攜帶狀態信息(如身份認證等)。
- 更好的二進制支持:websocket定義了二進制幀,相對HTTP,可以更輕松地處理二進制內容。
- 可以支持擴展:websocket定義了擴展,用戶可以擴展協議、實現部分自定義的子協議。
- 更好的壓縮效果:相對于HTTP壓縮,websocket在適當的擴展支持下,可以沿用之前內容的上下文,在傳遞類似的數據時,可以顯著地提高壓縮率。
- 與 HTTP 協議有著良好的兼容性:默認端口也是80和443,并且握手階段采用 HTTP 協議,因此握手時不容易屏蔽,能通過各種 HTTP 代理服務器。
- 沒有同源限制:客戶端可以與任意服務器通信。
websocket應用場景
- 場景一:彈幕
彈幕的流程是終端用戶A在自己的客戶端廣播了一條信息,這條信息需要在與其他N個用戶端發送的彈幕信息一并展示在A這邊。它需要馬上顯示到屏幕上,對實時性要求極高。使用websocket可以在有新彈幕產生時,服務器能夠迅速推送給所有用戶端,保障彈幕實時性。
- 場景二:在線教育
在線教育跨越了時空的限制,學生與老師進行一對多/一對一的在線授課,老師在客戶端內編寫的筆記、大綱、白板信息等信息,需要實時推送至多個學生的客戶端,同時在課堂上,通話、文字聊天、實時解題等交互的實時性要求非常高,需要通過websocket協議來完成。
- 場景三:金融產品實時信息查詢
股票價格瞬息萬變,如果顯示數據不及時,很有可能會影響用戶的收益。需要通過websocket協議流式更新數據變化,將價格實時推送至世界各地的客戶端,方便交易員迅速做出交易判斷。
- 場景四:體育實況更新
由于全世界體育愛好者數量眾多,比賽實況成為他們最為關心的熱點。websocket能夠助力體育新聞類服務的用戶降低延時,獲得實時的更新。
- 場景五:視頻會議和互動直播
盡管視頻會議并不能代替和真人相見,但是應用場景眾多。而互動直播和視頻會議中的連麥的服務對低延時的要求非常高。試想主播或者你的主管說了一句話后,你要10秒后才能聽到,那你們是根本無法進行正常交流的 。websocket可以幫助兩端或多端接入會議/直播的用戶實時傳遞信息。
websocket加速介紹
天翼云全站加速產品支持對websocket協議和http/https協議同時加速,即同一個域名可以既有http/https協議,又有websocket加速,您無需拆分域名,使用全站加速產品就可以實現對域名下http/https協議的應用和websocket協議的應用同時加速。全站加速節點會自動識別客戶端與全站加速邊緣節點通信使用的協議,自動切換協議。通常情況下,websocket協議的應用多為動態業務,對實時性要求很高,全站加速的動態探測選路能力可以為websocket應用選擇最快的回源路徑,提升websocket業務的訪問效果。
配置說明
- 登錄。
- 在【域名管理】-【域名列表】頁面,點擊【添加域名】。
- 【加速類型】下拉框,選擇【全站加速】。
- 【域名類型】選擇【全站加速-websocket加速】。
說明當選擇【加速類型】為【全站加速】后,這時才會彈出【域名類型】的配置框。
配置界面
其他相關配置
配置了websocket加速類型的域名,還可以配置websocket回源發送超時時間、websocket回源連接超時時間、websocket回源響應超時時間。其中,websocket回源連接超時時間可在控制臺自助配置,websocket回源發送超時時間和websocket回源響應超時時間需要您提交工單申請配置。
如您不需要單獨配置websocket的超時時間,則無需配置,全站加速將默認使用http/https的回源發送超時時間、回源連接超時時間、回源響應超時時間。
費用說明
在官網,websocket加速提供按量計費和資源包計費。
websocket加速計費-按量計費詳見:websocket加速計費。
websocket加速計費-資源包計費詳見:websocket加速資源包計費。