1. WebSocket 是什麼? WebSocket允許伺服器「主動」給瀏覽器發消息。 2. 為什麼要用 WebSocket 實時獲取服務端數據這種需求,在使用 WebSocket 之前也是可以做到的,主要方式就是輪詢。比如 javascript上一個定時器,每隔幾秒鐘向服務端發送消息詢問最新價格 ...
1. WebSocket 是什麼?
WebSocket允許伺服器「主動」給瀏覽器發消息。
2. 為什麼要用 WebSocket
實時獲取服務端數據這種需求,在使用 WebSocket 之前也是可以做到的,主要方式就是輪詢。比如 javascript上一個定時器,每隔幾秒鐘向服務端發送消息詢問最新價格,然後顯示在瀏覽器上。但是這種瀏覽器主動輪詢的方式有幾個弊端:
1.伺服器壓力大:假設瀏覽器每隔一秒鐘發出請求,如果同時有 100 個用戶在訪問當前頁面,那麼每秒鐘就至少有 100 個請求要處理,伺服器壓力是很大的。
2.嚴重浪費:倘若伺服器數據每隔 60 秒才有新數據,那麼其中有59次訪問都是浪費的。
3.實時性差:畢竟是每隔一秒鐘才發出請求,假如說為了緩解伺服器的壓力,做成每隔 10 秒才發出請求,就很有可能錯過數據的更新,沒有及時拿到數據。
以上就是瀏覽器傳統的輪詢方式的弊端,而使用 WebSocket 就可以解決這些問題。
1.伺服器壓力問題。 WebSocket 是服務端向瀏覽器主動推送消息,只有伺服器有新數據的時候才需要推送,沒有數據就不用推送,所以伺服器性能壓力小很多浪費問題。
2.浪費問題。每次有新數據才推送,沒有新數據就不推送,不存在浪費問題實時性問題。
3.實時性問題。 一旦有了新數據馬上就推送,瀏覽器實時獲取新數據。
3.怎麼開發WebSocket應用?