Как декодировать arrayBuffer из объекта - PullRequest
0 голосов
/ 20 апреля 2020

Я пробовал много вещей для декодирования arrayBuffer, сделанного из объекта, подобного {"foo":"bar"} Это arrayBuffer:

ArrayBuffer {
  [Uint8Contents]: <5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 5d>,
  byteLength: 15
}

Используя самый простой подход как TextDecoder, он просто возвращает [object Object], поэтому возможно проблема в кодировщике? У меня нет идей ... Я использую метод send этого клиента для отправки данных: https://www.npmjs.com/package/websocket

Итак, как декодировать arrayBuffer? Спасибо

1 Ответ

1 голос
/ 20 апреля 2020

JSON .stringify перед отправкой клиенту. Ваше декодирование в порядке. Он не был правильно сериализован на стороне сервера. Object.toString () дает вам эту строку.

Если вы хотите отправить объект в двоичном виде, вам нужно найти двоичный сериализатор, если это то, что вы ищете. Однако, если вы не имеете дело с действительно серьезными нагрузками или специализированными потребностями, где необходима оптимизация, я бы избежал боли, связанной с этим. Данные должны быть сериализованы в какой-то момент, а затем десериализованы на другом конце. Для вашего среднего API весьма сомнительно, что вам нужна двоичная сериализация

. Существуют некоторые хорошо известные варианты двоичной сериализации, такие как FlatBuffers, BSON, Thrift, protobuf, Avro, MsgPack и др. c. Я бы искал двоичную сериализацию в Google, чтобы найти последние варианты. И вы захотите добавить к поисковым ключевым словам и убедиться, что у них есть привязки для языков, которые вас интересуют.

...