11

我有一个接收二进制消息的 WebSocket,我想遍历字节。

我想出了以下转换功能...

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

这确实有效,但性能很糟糕。有没有更好的方法来允许读取字节?

4

1 回答 1

23

你有没有考虑过:

socket.binaryType = 'arraybuffer';

函数变为:

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

这实际上不需要做任何工作,因为它只是缓冲区的一个视图。

于 2013-08-01T14:13:58.803 回答