Объекты DataView (пусто) и Uint8Array (все 0) не создаются должным образом при использовании конструктора arraybuffer - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь создать объект dataview (или uint8array) для буфера массива, в который скопированы данные сообщения.

Я использую «новый DataView (буфер)» для создания представления данных и «новый Uint8Array (буфер)» для создания TypedArray.Ни один из них не производит ничего похожего на то, что, как говорят, будет производиться.

        this.socket.onmessage = function(msg){  

          var buffer = new ArrayBuffer(msg.data.length);                                                                // set buffer using the data received   
          for (let i = 0; i < msg.data.length; i++)                                                                     // must iterate over the data and buffer (only way to copy one to the other) (no constructor for it)
            buffer[i] = msg.data[i];                     
          var dataview = new DataView(buffer, 0, buffer.length);                                                        // an arraybuffer is a container with no lid to view what is inside, 
          var test = dataview.getUint8(2);

          var ui8view = new Uint8Array(buffer, 0, buffer.length);                                                       // dataview and uint(8,16,etc) objects are what you construct to be able to look into and manipulate the arraybuffer.
          for (let i = 0; i < msg.data.length; i++)                                                                     // must iterate over the data and buffer (only way to copy one to the other) (no constructor for it)
            ui8view[i] = msg.data[i];

Очевидно, я хочу иметь возможность навести курсор на мой объект ui8view или dataview и увидеть, что элементы имеют действительные байты, преобразованные вuint8 или что у вас есть в то время.

Проблема в том, что я получаю только набор нулей в массиве uint8, и объект dataview, похоже, даже не создается с буферным объектом.

Буферный объект показывает, что данные там.

...