2013-08-01 19 views
9

İkili iletileri alan bir WebSocket'ım var ve bayt üzerinden yinelemek istiyorum.WebSocket tarafından alınan bir JavaScript bloğundan okuma baytları

aşağıdaki dönüştürme fonksiyonu ile geldi ...

// Convert the buffer to a byte array. 
function convert(data, cb) { 
    // Initialize a new instance of the FileReader class. 
    var fileReader = new FileReader(); 
    // Called when the read operation is successfully completed. 
    fileReader.onload = function() { 
     // Invoke the callback. 
     cb(new Uint8Array(this.result)); 
    }; 
    // Starts reading the contents of the specified blob. 
    fileReader.readAsArrayBuffer(data); 
} 

Bu çalışır, ancak performans korkunç. Bayt okumaya izin vermenin daha iyi bir yolu var mı?

+0

Kullandığınız tarayıcı nedir? – karthick

+0

Google Chrome, kullandığım tarayıcıdır. –

+0

ne tür veri ' – Esailija

cevap

20

düşündünüz mü:

socket.binaryType = 'arraybuffer'; 

fonksiyonu haline gelir: aslında tampon üzerinde sadece bir görünümü olduğu için herhangi bir işi yapmak zorunda kalmazsınız

function convert(data) { 
    return new Uint8Array(data); 
} 

.

+1

Sürdürülebilirlik ve performans açısından büyük gelişme. Harika! –

+0

Teşekkür ederim, bu harika çalıştı! – velotron

İlgili konular