Я хочу, чтобы закодировать объектов JavaScript с ArrayBuffer элемента в BSON
и передать его на websocket
. Однако сериализованный объект BSON в 10 раз больше, чем должен быть.как сериализовать ArrayBuffer в объект BSON для передачи WebSocket в JavaScript
Код что-то вроде этого:
var A = {buffer: new ArrayBuffer(1024)};
bson_buffer_size = BSON.calculateObjectSize(A) // returns 9164, I am expecting ~1024
Мое понимание BSON сериализатором должно быть неправильным. Кто-нибудь знает, как я могу создать компактный объект BSON с бинарным полем буфера?
Я провел еще несколько экспериментов прошлой ночью, и кажется, что BSON может сериализовать буферный объект Node.js правильно как двоичный. Передача ArrayBuffer напрямую определенно является вариантом для меня. Но, как вы сказали, мне нужно либо передать другие атрибуты отдельно, либо написать собственный парсер. Я сделаю некоторый бенчмаркинг и посмотрю, какой метод более эффективен. –
Если вы можете сделать Node 'Buffer', тогда обязательно сделайте это. Я предположил, что у вас есть причина не «Буффер», так как вы использовали «ArrayBuffer», извините: P – loganfsmyth