I have a WebSocket that receives binary messages and I want iterate over the bytes.
I came up with the following conversion function...
// 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);
}
This does work, but the performance is terrible. Is there a better way to allow reading bytes?
Have you considered:
socket.binaryType = 'arraybuffer';
The function becomes:
function convert(data) {
return new Uint8Array(data);
}
Which will not actually have to do any work because it's just a view on the buffer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With