WebSocket來實現即時通信

即時通訊,是指客戶端和服務器之間在有信息更新時可以立刻把信息,發送給客戶端;web

  1、之前實現方式,JS輪詢;瀏覽器

    現不少網站爲了實現即時通信,所用的技術都是輪詢(polling)。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對服務器發出HTTP request,而後由服務器返回最新的數據給客戶端的瀏覽器。服務器

    這種傳統的HTTP request 的模式帶來很明顯的缺點 – 瀏覽器須要不斷的向服務器發出請求,然而HTTP request 的header是很是長的,裏面包含的有用數據可能只是一個很小的值,這樣會佔用不少的帶寬。websocket

  2、而比較新的技術去作輪詢的效果是Comet – 用了AJAX。但這種技術雖然可達到全雙工通訊,但依然須要發出請求。socket

  3、在 WebSocket API,瀏覽器和服務器只須要作一個握手的動做,而後,瀏覽器和服務器之間就造成了一條快速通道。二者之間就直接能夠數據互相傳送。在此WebSocket 協議中,爲咱們實現即時服務帶來了兩大好處:網站

    1. Header
      互相溝通的Header是很小的-大概只有 2 Bytes
    2. Server Push
      服務器的推送,服務器再也不被動的接收到瀏覽器的request以後才返回數據,而是在有新數據時就主動推送給瀏覽器。
在實現websocket連線過程當中,須要經過瀏覽器發出websocket連線請求,而後服務器發出迴應,這個過程一般稱爲「握手
相關文章
相關標籤/搜索