溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Socket Socket.io Websocket HTTP之間的區(qū)別有哪些

發(fā)布時(shí)間:2021-12-03 17:26:14 來(lái)源:億速云 閱讀:350 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)Socket Socket.io Websocket HTTP之間的區(qū)別有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。




 

Socket Socket.io Websocket HTTP 之間的區(qū)別




Socket Socket.io Websocket HTTP之間的區(qū)別有哪些


Socket 是操作系統(tǒng)提供的對(duì)于傳輸層(TCP / UDP)抽象的接口,是一個(gè)編程概念,而 Websocket 、Socket.io 與 HTTP 一樣是一個(gè)成文的互聯(lián)網(wǎng)協(xié)議。另外,Websocket 和 HTTP 都是基于 TCP 傳輸數(shù)據(jù),Socket.io 可以看作是對(duì) Websocket 和 HTTP 的又一次封裝。


Socket Socket.io Websocket HTTP之間的區(qū)別有哪些


HTTP 是基于請(qǐng)求響應(yīng)式的,即通信只能由客戶端發(fā)起,服務(wù)端做出響應(yīng),無(wú)狀態(tài),無(wú)連接。

無(wú)狀態(tài):每次連接只處理一個(gè)請(qǐng)求,請(qǐng)求結(jié)束后斷開(kāi)連接。
無(wú)連接:對(duì)于事務(wù)處理沒(méi)有記憶能力,服務(wù)器不知道客戶端是什么狀態(tài)。

以往實(shí)現(xiàn)即時(shí)通訊的手段:

輪詢:客戶端定時(shí)向服務(wù)器發(fā)送 Ajax 請(qǐng)求,服務(wù)器接到請(qǐng)求后馬上返回響應(yīng)信息并關(guān)閉連接。


 

長(zhǎng)輪詢:客戶端向服務(wù)器發(fā)送 Ajax 請(qǐng)求,服務(wù)器接到請(qǐng)求后 hold 住連接,直到有新消息才返回響應(yīng)信息并關(guān)閉連接,客戶端處理完響應(yīng)信息后再向服務(wù)器發(fā)送新的請(qǐng)求。


 

長(zhǎng)連接:在頁(yè)面里嵌入一個(gè)隱蔵 iframe,將這個(gè)隱蔵 iframe 的 src 屬性設(shè)為對(duì)一個(gè)長(zhǎng)連接的請(qǐng)求,服務(wù)器端就能源源不斷地往客戶端輸入數(shù)據(jù)。


 

Flash Socket:在頁(yè)面中內(nèi)嵌入一個(gè)使用了 Socket 類的 Flash 程序 JavaScript 通過(guò)調(diào)用此 Flash 程序提供的 Socket 接口與服務(wù)器端的 Socket 接口進(jìn)行通信,JavaScript 在收到服務(wù)器端傳送的信息后控制頁(yè)面的顯示。


Socket Socket.io Websocket HTTP之間的區(qū)別有哪些

Websocket 的出現(xiàn)就是為了解決 HTTP 在即時(shí)通信中存在的不足,HTTP 是通過(guò) Polling 實(shí)現(xiàn)即時(shí)通信存在很大的資源開(kāi)銷。

Webscoket 握手階段采用 HTTP 協(xié)議,連接建立之后便與 HTTP 協(xié)議沒(méi)有任何關(guān)系,Websocket 連接建立之后,client 與 server 可以同時(shí)收發(fā)數(shù)據(jù),全雙工通訊。

Socket Socket.io Websocket HTTP之間的區(qū)別有哪些

Socket.io 支持 Websocket 協(xié)議,支持多種輪詢機(jī)制,它實(shí)現(xiàn)了實(shí)時(shí)、雙向、基于事件的通訊機(jī)制,天生用來(lái)解決實(shí)時(shí)通訊問(wèn)題。另外,Socket.io 能夠根據(jù)瀏覽器對(duì)通訊機(jī)制的支持情況自動(dòng)地選擇最佳的方式來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)實(shí)時(shí)應(yīng)用。


關(guān)于“Socket Socket.io Websocket HTTP之間的區(qū)別有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI