接收的數據為buffer,每次數據放入到arrRs中,現在想將多個ArrayBuffer合並成一個ArrayBuffer
前端可以借助 Blob,FileReader.readAsArrayBuffer
var blob = new Blob(arrRs, { type: 'application/octet-stream' }); var glbReader = new window.FileReader(); reader.readAsArrayBuffer(blob); reader.onloadend = function () { var newBuffer = reader.result; };
但是nodejs里沒有Blob,FileReader
nodejs端可以使用
Buffer.concat(……),其定義如下,可以根據自己的情況來

var arrBuffer = []; for (var i = 0; i < arrRs.length; i++) { var tmp = ; let arraybuffer = new Uint8Array(arrRs[i]);
arrBuffer.push(arraybuffer);
}
var newBuffer = Buffer.concat(arrBuffer);
注:
在 new Uint8Array(arrRs[i]) 部分,一定要確保 arrRs[i] 為 ArrayBuffer,而不是其 DataView
如果是DataView不會報錯,但是數據是有問題的
可以使用 ArrayBuffer.isView(tmp) 來判斷
如果對象為視圖,使用 arrRs[i].buffer 轉為 ArrayBuffer
