Android 知识网络与信息安全前端之美

WebSocket

2018-03-20  本文已影响425人  聪明的奇瑞

为什么需要 WebSocket?

WebSocket 简介

WebSocket

客户端的示例

var ws = new WebSocket("wss://echo.websocket.org");

ws.onopen = function(evt) { 
  console.log("Connection open ..."); 
  ws.send("Hello WebSockets!");
};

ws.onmessage = function(evt) {
  console.log( "Received Message: " + evt.data);
  ws.close();
};

ws.onclose = function(evt) {
  console.log("Connection closed.");
};      

客户端的 API

var ws = new WebSocket('ws://localhost:8080');
switch (ws.readyState) {
  case WebSocket.CONNECTING:
    // do something
    break;
  case WebSocket.OPEN:
    // do something
    break;
  case WebSocket.CLOSING:
    // do something
    break;
  case WebSocket.CLOSED:
    // do something
    break;
  default:
    // this never happens
    break;
}
ws.onopen = function () {
  ws.send('Hello Server!');
}
// 如果要指定多个回调函数,可以使用 addEventListener 方法
ws.addEventListener('open', function (event) {
  ws.send('Hello Server!');
});
ws.onclose = function(event) {
  var code = event.code;
  var reason = event.reason;
  var wasClean = event.wasClean;
  // handle close event
};
// 如果要指定多个回调函数,可以使用 addEventListener 方法
ws.addEventListener("close", function(event) {
  var code = event.code;
  var reason = event.reason;
  var wasClean = event.wasClean;
  // handle close event
});
ws.onmessage = function(event) {
  var data = event.data;
  // 处理数据
};
// 如果要指定多个回调函数,可以使用 addEventListener 方法
ws.addEventListener("message", function(event) {
  var data = event.data;
  // 处理数据
});
ws.onmessage = function(event){
  if(typeof event.data === String) {
    console.log("Received data string");
  }

  if(event.data instanceof ArrayBuffer){
    var buffer = event.data;
    console.log("Received arraybuffer");
  }
}
// 收到的是 blob 数据
ws.binaryType = "blob";
ws.onmessage = function(e) {
  console.log(e.data.size);
};

// 收到的是 ArrayBuffer 数据
ws.binaryType = "arraybuffer";
ws.onmessage = function(e) {
  console.log(e.data.byteLength);
};
var data = new ArrayBuffer(10000000);
socket.send(data);

if (socket.bufferedAmount === 0) {
  // 发送完毕
} else {
  // 发送还没结束
}
socket.onerror = function(event) {
  // handle error event
};

socket.addEventListener("error", function(event) {
  // handle error event
});
上一篇 下一篇

猜你喜欢

热点阅读