WebSocket

一、websocket 是什麼?
解決客戶端與服務端實時通訊而產生的技術。
先經過HTTP/HTTPS協議進行握手後建立一個用於交換數據的TCP鏈接,而後服務端與客戶端經過此TCP鏈接進行實時通訊。
服務器和客戶端能夠在給定的時間範圍內的任意時刻,相互推送信息。
之前咱們實現推送技術,用的都是輪詢,在特定時間間隔由瀏覽器自動發出請求,主動拉取服務器消息。須要不斷的向服務器發送請求,會佔用大量的帶寬和服務器資源。web

二、使用websocket
在支持WebSocket的瀏覽器中,在建立socket以後。能夠經過onopen,onmessage,onclose、onerror四個事件實現對socket進行響應瀏覽器

只讀屬性 readyState 表示鏈接狀態,能夠是如下值:
    0 - 表示鏈接還沒有創建。
    1 - 表示鏈接已創建,能夠進行通訊。
    2 - 表示鏈接正在進行關閉。
    3 - 表示鏈接已經關閉或者鏈接不能打開。
    
// window.WebSocket "WebSocket" in window 檢測瀏覽器是否支持 WebSocket
var ws = new WebSocket(「ws://localhost:8080」);
// 申請一個WebSocket對象,參數是須要鏈接的服務器端的地址
// 同http協議使用http://開頭同樣,WebSocket協議的URL使用ws://開頭
// 另外安全的WebSocket協議使用wss://開頭。

// 指定鏈接成功後的回調函數
ws.onopen = function() {  
  console.log(「open」);
  ws.send(「hello」);
  // 用於向服務器發送數據
};
// 或者
ws.addEventListener('open', function (event) {
  ws.send('Hello Server!');
});
// 指定收到服務器數據後的回調函數
ws.onmessage = function(evt) {
  console.log(evt.data)
};
// 指定鏈接關閉後的回調函數
ws.onclose = function(evt) {
  console.log(「WebSocketClosed!」);
};
// 指定報錯時的回調函數
ws.onerror = function(evt) {
  console.log(「WebSocketError!」);
};
// 關閉websocket
websocket.close();
相關文章
相關標籤/搜索