2011-12-07 13 views
5

Jak rozumiem, ArrayBuffer długość jest ustawiana tylko przez konstruktor i nie można jej zmieniać dynamicznie. Więc jestem ciekawy, czy jest możliwe, że za pomocą websockets binarnych wiadomości danych wysyłam arraybuffer pewną część, nie cały bufor?Wiadomości danych binarnych sieci Web (ArrayBuffer)

+0

zobaczyć również DataView() – Zaffy

Odpowiedz

2

Możesz użyć .slice, aby wyciąć 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 może tylko wysyłać ArrayBuffer nie Uint8Array lub innych – Demion

+1

@Demion: Wiem, wejście i wyjście stanowi 'ArrayBuffer' tutaj (' origBuffer' i 'bufor'). – pimvdb

+0

Specyfikacja @pimvdb została zmieniona zaktualizuj swoją odpowiedź –