Back

websocket - 用js读取 binary websocket

发布时间: 2020-02-15 12:55:00

用下面代码就可以:

1. pako 是js中的解压缩的包(?)

2. 其实挺容易的

<html>
  <head>
    <meta charset=utf-8>
    <script src="https://cdn.jsdelivr.net/pako/1.0.3/pako.min.js"></script>
    <script>
pako = window.pako

ws_server = "wss://websocket.xxx.top/ws"

ws = new WebSocket(ws_server);

// ws.binaryType = 'arraybuffer';
var buffer;

ws.onopen = function(){
  document.write("ws opened: " + ws_server + "<br/>")
  ws.send("ping")
  // 9k

  ws.send('{"subscribe":"real_time_trades·xxxyy·zh"}')
}

ws.onmessage = function (evt) {

    if(evt.data == "pong"){
      document.write(evt.data + "<br/>")
      return;
    }
    var reader = new FileReader();
    reader.readAsArrayBuffer(evt.data);
    reader.addEventListener("loadend", function(e)
    {

      let buffer = pako.inflate(e.target.result, { to: 'string' })
      buffer += "<br/>"
      buffer += "----<hr/>"
      buffer += "<br/>"
      document.write(buffer)
    });
};

    </script>
  </head>
  <body>

  </body>
</html>

Back