1. 程式人生 > >WebSocket詳解(一):初步認識WebSocket技術

WebSocket詳解(一):初步認識WebSocket技術

tcp 客戶端 應用程序 需要 應用層協議 通過 新的 sock org

1.什麽是Socket?什麽是WebSocket?

對於第1次聽說WebSocket技術的人來說,兩者有什麽區別?websocket是僅僅將socket的概念移植到瀏覽器中的實現嗎?

我們知道,在網絡中的兩個應用程序(進程)需要全雙工相互通信(全雙工即雙方可同時向對方發送消息),需要用到的就是socket,它能夠提供端對端通信,對於程序員來講,他只需要在某個應用程序的一端(暫且稱之為客戶端)創建一個socket實例並且提供它所要連接一端(暫且稱之為服務端)的IP地址和端口,而另外一端(服務端)創建另一個socket並綁定本地端口進行監聽,然後客戶端進行連接服務端,服務端接受連接之後雙方建立了一個端對端的TCP連接,在該連接上就可以雙向通訊了,而且一旦建立這個連接之後,通信雙方就沒有客戶端服務端之分了,提供的就是端對端通信了。我們可以采取這種方式構建一個桌面版的im程序,讓不同主機上的用戶發送消息。從本質上來說,socket並不是一個新的協議,它只是為了便於程序員進行網絡編程而對tcp/ip協議族通信機制的一種封裝。

websocket是html5規範中的一個部分,它借鑒了socket這種思想,為web應用程序客戶端和服務端之間(註意是客戶端服務端)提供了一種全雙工通信機制。同時,它又是一種新的應用層協議,websocket協議是為了提供web應用程序和服務端全雙工通信而專門制定的一種應用層協議,通常它表示為:ws://echo.websocket.org/?encoding=text HTTP/1.1,可以看到除了前面的協議名和http不同之外,它的表示地址就是傳統的url地址。

可以看到,websocket並不是簡單地將socket這一概念在瀏覽器環境中的移植,本文最後也會通過一個小的demo來進一步講述socket和websocket在使用上的區別。

WebSocket詳解(一):初步認識WebSocket技術