Я исследую возможность сериализации данных с помощью буферов протокола Google в приложении C ++, отправки данных в приложение JavaScript и десериализации данных для использования приложением JavaScript.Однако, без возможности функции ParseFromString (), я не уверен, как это можно сделать, и не могу найти четкого ответа или примера.Как это можно сделать?
Я использую google-protobuf и proto3.Я не очень старался ... правда в том, что я даже не знаю, с чего начать.Я хотел бы предоставить MCVE, но не знаю, как с тем, что я пытаюсь достичь.
Я посмотрел на "deserializeBinary", но я потерял набор текста (deserializeBinary () требуется "объект")введите param) при разборе данных из полученного сообщения.Я использую двоичный парсер для анализа заголовка из данных буфера сериализованного протокола.
// var msg == full received message from c++ server
// which consists of 32 bit header
var parser = new Parser()
.uint16("header_val_1")
.uint16("header_val_2")
.string("msg_payload", {
zeroTerminated: true
});
var msgObj = parser.parse(msg);
var payloadData = msgObj.msg_payload;
var newData = ProtoMsg.SpecialData.deserializeBinary(payloadData);
// throws type error (expects 'object')
Я ожидаю, что newData
будет заполнено ожидаемым сообщением SpecialData
введите так, чтобы он мог проверяться на конкретные точки данных.
newData.getLength()
Однако я не могу справиться с ошибкой, и даже тогда я не уверен, правильно ли я это делаю.