导航

Processing Binary Protocols with Client-Side JavaScript

Posted on 2017-11-02 14:16  DotNet1010  阅读(143)  评论(0编辑  收藏  举报

http://blog.mgechev.com/2015/02/06/parsing-binary-protocol-data-javascript-typedarrays-blobs/

 

https://github.com/novnc/websockify

ws.binaryType = "blob";
// or
ws.binaryType = "arraybuffer";

var pixels=16,
a=new Uint8Array(pixels*3),
l=pixels*1;
while(l--){
 a[l*3]=255;//red
 a[l*3+1]=0;//green
 a[l*3+2]=0;//blue
}
ws.send(a.buffer);


// 使用ArrayBuffer发送canvas图像数据
 
var img = canvas_context.getImageData(0, 0, 400, 320);
 
var binary = new Uint8Array(img.data.length);
 
for (var i = 0; i < img.data.length; i++) {
 
 binary[i] = img.data[i];
 
}
 
connection.send(binary.buffer);
// 使用Blob发送文件
var file = document.querySelector(‘input[type=”file”]').files[0];
connection.send(file);
 
 

 function valueToByteArray(value, bytes_length) { var bytes_array = []; while (bytes_length > 0){ var byte = value & 0xFF; value >>= 8; bytes_length--; bytes_array.push(byte); } return bytes_array.reverse(); }