【发布时间】:2013-05-08 22:32:23
【问题描述】:
我有一个奇怪的经历。当我发送此数组缓冲区设置的数据时:
var f32s = Float32Array(2048);
for (var i = 0; i < f32s.length; i++) {
f32s[i] = buffer[i]; // fill the array
ws.send(f32s[i]);
}
我在另一端得到的缓冲区大小是 8192 字节。 但是当我以 JSON 格式发送大块缓冲区时,如下所示:
var obj = {
buffer_id: 4,
data: f32s[i]
};
var json = JSON.stringify({ type:'buffer', data: obj });
ws.send(json);
我在另一端得到的缓冲区大小膨胀到 55,xxx 字节(已填充数据)和 17,xxx 字节(未填充数据)。
为什么会发生这种情况,如何保持缓冲区较小? 我想这样做是因为当我在另一端渲染它时,流是断断续续的。
谢谢。
【问题讨论】:
标签: javascript arrays websocket arraybuffer typedarray