Processing Binary Protocols with Client-Side JavaScript
Posted on 2017-11-02 14:16 DotNet1010 阅读(151) 评论(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(); }
浙公网安备 33010602011771号