У меня есть двоичная строка, которая должна проходить через веб-сокет ws (я не могу использовать websocket.io), и поэтому она является JSON.stringified.Например, var msg.data = data.toString('base64')
С другой стороны, я хочу, чтобы эти данные возвращались не в виде двоичного двоичного файла, а в виде массива 32-разрядных целых чисел.например, если двоичные данные поступают [0, 0, 0, 1], я хочу, чтобы [1] выходил.Каждый выходной элемент составляет 4 байта.
Если я просто беру двоичную строку напрямую, я могу new Int32Array(data)
и я золотой;результат составляет 1/4 длины оригинала, и каждый 32-битный элемент состоит из 4 оригинальных байтовых элементов.
Но когда я его кодировал, затем декодировал с помощью var data = Buffer.from(msg.data, 'base64')
, тогда new Int32Array(data)
имеет ту же длину, что и оригинал, и каждый 32-байтовый элемент сделан из ОДНОГО из оригинальных 8-байтовых элементов.Int32Array.from(data)
делает то же самое.
Я не нахожу никакого ответа при поиске, все, кажется, в порядке с байтовыми данными.