1. 程式人生 > >WebSocket與Socket、TCP、HTTP的關係和異同點

WebSocket與Socket、TCP、HTTP的關係和異同點

今天來講一下與其他協議的區別和相同點,讓各位同學能夠更加深入的去了解和運用各種協議。

1 什麼是WebSocket?

  WebSocket從滿足基於Web的日益增長的實時通訊需求應運而生,解決了客戶端發起多個Http請求到伺服器資源瀏覽器必須要在經過長時間的輪詢問題,實現裡多路複用,是全雙工、雙向、單套接字連線,在WebSocket協議下伺服器和客戶端可以同時傳送資訊。

2 WebSocket和Http的異同點

同:1建立在TCP之上,通過TCP協議來傳輸資料。

2 都是可靠性傳輸協議。

3 都是應用層協議。

異:1 WebSocket是HTML5中的協議,支援持久連線,HTTP不支援持久連線

2 HTTP是單向協議,只能由客戶端發起,做不到伺服器主動向客戶端推送資訊。

3 WebSocket和Socket

  Socket本身並不是一個協議,它工作在OSI模型會話層,是一個套接字,TCP/IP網路的API,是為了方便大家直接使用更底層協議而存在的一個抽象層。Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織資料,以符合指定的協議。

  而WebSocket則是一個典型的應用層協議。

4 WebSocket  HTTP和TCP/IP

 WebSocket和HTTP一樣,都是建立在TCP之上,通過TCP來傳輸資料。後面的文章我會用程式碼舉例子來展示。

5 SocketTCP/IP 
  Socket是對TCP/IP協議的封裝,像建立Socket連線時,可以指定使用的傳輸層協議,Socket可以支援不同的傳輸層協議(TCP或UDP),當使用TCP協議進行連線時,該Socket連線就是一個TCP連線。

  說了這麼多,希望對大家來理解WebSocket與Socket、TCP、HTTP的關係有所幫助,如果大家在工作當中需要用到WebSocket而不能解決問題的時候,建議大家可以使用一下一些三方的WebSocket,融雲、極光、GoEasy等,我這裡就給大家推一個簡單免費的三方WebSocket,GoEasy。很成熟的一款產品,推薦原因是程式碼簡單,執行穩定。網站是

www.goeasy.io,大家可以自己去看一下。下篇文章我會用程式碼來舉例說明這篇文章沒有具體說的地方。