2013-08-01 7 views
9

द्वारा प्राप्त जावास्क्रिप्ट ब्लॉब से बाइट्स पढ़ना मेरे पास एक वेबसाकेट है जो बाइनरी संदेश प्राप्त करती है और मैं बाइट्स पर पुनरावृत्ति चाहता हूं।वेबसॉकेट

मैं निम्नलिखित रूपांतरण समारोह के साथ आया था ...

// 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); 
} 

यह काम करता है, लेकिन प्रदर्शन भयानक है। बाइट पढ़ने की अनुमति देने के लिए एक बेहतर तरीका है?

+0

आप जिस ब्राउज़र का उपयोग कर रहे हैं वह क्या है? – karthick

+0

Google क्रोम वह ब्राउज़र है जिसका मैं उपयोग कर रहा हूं। –

+0

किस प्रकार का डेटा 'डेटा' – Esailija

उत्तर

20

आप पर विचार किया है:

socket.binaryType = 'arraybuffer'; 

समारोह हो जाता है:

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

कौन वास्तव में, क्योंकि यह सिर्फ बफर पर एक दृश्य है किसी भी काम करने के लिए नहीं होगा।

+1

रखरखाव और प्रदर्शन के मामले में भारी सुधार। महान! –

+0

धन्यवाद, यह बहुत अच्छा काम किया! – velotron

संबंधित मुद्दे