Javascript Can';t通过WebSocket发送Chrome中的长缓冲区
我正在尝试将640*480画布的内容发送到WebSocket服务器 Javascript相关部分如下所示:Javascript Can';t通过WebSocket发送Chrome中的长缓冲区,javascript,google-chrome,firefox,websocket,Javascript,Google Chrome,Firefox,Websocket,我正在尝试将640*480画布的内容发送到WebSocket服务器 Javascript相关部分如下所示: // Get the image data var imageData = tCtx.getImageData (0, 0, 640, 480); var buf = imageData.data; var limit = buf.byteLength / 4; var buffer = new Uint8ClampedArray(921600);
// Get the image data
var imageData = tCtx.getImageData (0, 0, 640, 480);
var buf = imageData.data;
var limit = buf.byteLength / 4;
var buffer = new Uint8ClampedArray(921600);
for (var i = 0; i < limit; ++i) {
var originOffset = 4 * i;
var targetOffset = 3 * i;
buffer[targetOffset] = buf[originOffset + 2];
buffer[targetOffset + 1] = buf[originOffset + 1];
buffer[targetOffset + 2] = buf[originOffset];
}
// Send the data
ws.send (buffer);
//获取图像数据
var imageData=tCtx.getImageData(0,0,640,480);
var buf=imageData.data;
var限制=buf.byteLength/4;
var缓冲器=新的Uint8ClampedArray(921600);
对于(变量i=0;i
for循环只是将画布上的RGBA格式转换为BGR格式,以便使用OpenCV显示图片
在Firefox上它可以工作,在我的服务器上我收到了921600字节(我使用的是libwebsockets),我甚至可以用OpenCV显示图片。
但是在Chrome上,当我尝试发送这些数据时,服务器不接收字节,WebSocket连接关闭
我尝试在发送缓冲区之前对其进行切片,发现Chrome最多可以发送65000个字节:也就是说,当我尝试70000个字节时,它不起作用
知道为什么吗?我能做点什么吗?我需要手动分割缓冲区并单独发送部分吗?我以为WebSockets应该负责这个?
提前感谢:-)