WebSocket概念及工作原理

2021-09-28 20:18:35 字數 1635 閱讀 2518

一、websocket是什麼?

websocket是html5新增的協議,它的目的是在瀏覽器和伺服器之間建立乙個不受限的雙向通訊的通道,比如說,伺服器可以在任意時刻傳送訊息給瀏覽器。

websocket同樣是html5規範的組成部分之一,用一句話概括就是:客戶端向websocket伺服器通知(notify)乙個帶有所有接收者id的事件(event),伺服器接收後立即通知所有活躍的(active)客戶端,只有id在接收者id序列中的客戶端會處理這個事件。由於websocket本身基於tcp協議的,多以在伺服器端我們可以採用構建tcp socket伺服器的方式來構建websocket伺服器。

websocket是一種全新的協議。它將tcp的socket(套接字)應用在了web page上,從而使通訊雙方建立起乙個保持在活動狀態連線通道,並且屬於全雙工(雙方同時進行雙向通訊)。

它的最大特點是,伺服器可以主動向客戶端推送資訊,客戶端也可以主動向伺服器端傳送資訊,是真正的雙向平等對話,屬於伺服器推送技術的一種,其他特點包括:

1)建立在tcp協議之上,伺服器端的實現比較容易。

2)與http協議有著良好的相容性。預設埠也是80和443,並且握手階段採用http協議,因此握手時不容易遮蔽,能通過各種http**伺服器。

3)資料格式比較輕量,效能開銷小,通訊高效。

4)可以傳送文字,也可以傳送二進位制資料。

5)沒有同源限制,客戶端可以與任意伺服器通訊

6)協議標識是ws(如果加密,則為wss),伺服器**就是url。

二、協議

websocket協議被設計來取代現有的使用http作為傳輸層的雙向通訊技術,並受益於現有的基礎設施(**,過濾,身份驗證)。

tcp/ip協議

tcp/ip協議是目前應用最為廣泛的協議,是構成internet國際網際網路協議的最為基礎的協議,由tcp和ip協議組成。

tcp協議:面向連線的,可靠的。基於位元組流的傳輸層通訊協議,負責資料的可靠性傳輸的問題。

udp協議:無連線、不可靠、基於報文的傳輸層協議,優點是傳送後不用管,速度比tcp快。

三、雙向通訊與訊息推送

1)輪詢:客戶端定時向伺服器傳送ajax請求,伺服器接到請求後馬上返回響應資訊並關閉連線。

優點:後端程式編寫比較容易

缺點:請求中有大半是無用,浪費頻寬和伺服器資源。

例項:適用於小型應用。

2)長輪詢:客戶端向伺服器端傳送ajax請求,伺服器接到請求後hold住連線,直到有新訊息才返回響應資訊並關閉連線,客戶端處理完響應資訊後再向伺服器傳送新的請求

優點:在無訊息的情況下不會頻繁的請求,耗費資小

缺點:伺服器hold連線會消耗資源,返回資料順序無保證,難於管理維護。comet非同步的ashx

例項:webqq、hi網頁版、facebook im。

3)長連線:在頁面裡嵌入乙個隱藏iframe,將這個隱藏iframe的src屬性設為對乙個長連線的請求或是採用xhr請求,伺服器端就能源源不斷地往客戶端輸入資料。。

優點:訊息即時到達,不發無用請求,管理起來也相對方便

缺點:伺服器維護乙個長連線會增加開銷

例項:gmail聊天

GPRS DTU概念及DTU的工作原理

最近需要開發乙個基於grps dtu資料傳輸的資料中心方案,於是找了一些資料。個人覺得很有用。gprs dtu 全稱gprs 資料傳輸單元,在國內目前實際上對 gprs dtu 具有更加明確的約定 gprs dtu 是專門用於將串列埠資料通過 gprs網路進行傳送的 gprs 無線裝置。gprs d...

CaChe基本概念及工作原理

計算機中程式執行時所有的指令和資料都是從儲存器中取出來執行的。儲存器是計算機系統中的重要組成部分,相當於計算機的倉庫,用來存放各類程式及其處理的資料。因此儲存器的容量和效能應當隨著處理器的速度和效能的提高而通過提高,以保持系統效能的平衡。然而在過去的 20 多年中,隨著時間的推移,處理器和儲存器在效...

041 http協議概念及工作流程

http協議 重要性 無論以後是以webserverice,還是用rest做大型架構,都離不開對http協議的認識 基本上可以簡化的說 webservice http協議 xml rest http協議 json 各種api也是用http json xml來實現的 http很複雜,學起來也很枯燥,但...