2011-12-07 19 views
5

Según tengo entendido ArrayBuffer la longitud se establece solo por el constructor y no se puede cambiar dinámicamente. Entonces, tengo curiosidad, ¿es posible usar los mensajes de datos binarios de websockets? ¿Enviar parte de un buffer de array, no un buffer completo?Mensajes de datos binarios de Websocket (ArrayBuffer)

+0

ver también DataView() – Zaffy

Respuesta

2

Puede usar .slice para cortar un ArrayBuffer: http://jsfiddle.net/rtaB4/21/.

var inputBuffer = new Uint8Array([0, 1, 2, 3, 4]).buffer; 
var outputBuffer = inputBuffer.slice(1, 3); 

console.log(outputBuffer.byteLength);  // 2 
console.log(new Uint8Array(outputBuffer)); // [1, 2] 
+0

WebSocket sólo puede enviar ArrayBuffer no Uint8Array u otros – Demion

+1

@Demion: Lo sé, la entrada y la salida es un 'ArrayBuffer' aquí (' origBuffer' y 'buffer'). – pimvdb

+0

Especificación @pimvdb ha cambiado su respuesta –