Как я могу получить dataType, когда Array вставлен в ArrayBuffer?

У меня есть массив:

var dataArray = new Uint16Array(256);

затем мой массив переходит через nodeJs на другой компьютер. (nodejs binaryType = "arraybuffer")

Как мне узнать на другом клиенте, что я должен привести к Uint16Array, а не к Uint8Array?

Примечание: глубина в битах и ​​длина массива являются динамическим значением и могут изменяться во время работы программы.

Спасибо:)

1 ответ

Решение

При передаче данных как ArrayBuffer это просто двоичные данные буфера, вам нужно знать, с каким представлением вы хотите получить доступ к данным. TypedArrays просто взгляд на двоичный ArrayBuffer,

Есть несколько способов справиться с этим:

  • Используйте разные маршруты для отправки ваших данных
  • Добавьте префикс байта к вашим данным
  • И, возможно, лучшее решение, не меняйте тип данных в приложении. imho чистый интерфейс должен обрабатывать только один тип данных.
Другие вопросы по тегам