¿Cuál es la forma preferible de agregar/combinar ArrayBuffers?Anexar ArrayBuffers
Estoy recibiendo y analizando paquetes de red con una variedad de estructuras de datos. Los mensajes entrantes se leen en ArrayBuffers. Si llega un paquete parcial, necesito almacenarlo y esperar el siguiente mensaje antes de volver a intentar analizarlo.
Actualmente estoy haciendo algo como esto:
function appendBuffer(buffer1, buffer2) {
var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
tmp.set(new Uint8Array(buffer1), 0);
tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
return tmp.buffer;
}
obvio que no puede moverse por tener que crear un nuevo buffer como ArrayBuffers son de una longitud fija, pero es necesario para inicializar matrices con tipo? Al llegar, lo único que quiero es poder tratar los buffers como buffers; tipos y estructuras no son importantes.
posible duplicado de [matrices tipadas en Gecko 2: concatenación y expansión de array Float32] (http://stackoverflow.com/questions/4554252/typed-arrays-in-gecko-2-float32array-concatenation-and-expansion) – Esailija
@Esailija, la solución a la pregunta anterior ofrece mi enfoque actual que combina matrices tipadas en un nuevo buffer. Lo cual está bien cuando quieres tratar con matrices tipadas. Quiero evitarlos por completo. Mi pregunta es si esto es posible. – user1421750
bueno, solo tienes '.slice' con' ArrayBuffer', no se puede hacer mucho con eso. Luego tienes '.append' con' BlobBuilder' pero va a ser mucho más complicado que lo que ya estás haciendo. ¿Hay algún problema real con tu enfoque actual? – Esailija