decode protocbuf посредством php (или linux shell)

здраствуйте, есть готовый скрипт js(browser) который отправляет отправляет вот такой bin текст playload Content-Type: application/x-protobuf

 0
$xxxxxxxx-xxxx-xxxx-xxxx-b9bbf8e86d27²

ту самую информацию можно перед отправкой посмотреть,

trx: "xxxxxxxx-xxxx-xxxx-xxxx-b9bbf8e86d27"
action: "siteConfig"

через ./protoc --decode-raw < file.bin > file.output получаю кашу и не знаю как text-format преобразовать в json

суть вопроса, в том, как на стороне сервера эту информацию преобразить encode/decode, времени у меня в обрез(немогу сейчас в изучение нырнуть увы), если мало debug информации я все оперативно добавлю, пожалуйста помогите


Ответы (1 шт):

Автор решения: KoVadim

Просто нужно декодировать полностью, а не в сыром виде.

protoc --decode header my.proto < b.bin
  • header - это имя класса в прото файле.
  • my.proto - это собственно сам прото файл

вывод будет более красивым и похожим на то, что Вы ожидаете.

В самом закодированном бинарном файле не сохраняются имена полей, поэтому вместо них можно увидеть только числа-индексы. Если сам прото файл доступен, то эти индексы можно подсмотреть.

Без прото файла декодировать имена полей с бинарных данных не возможно.

Но если у Вас есть приложение, которое использует этот протобаф, можно в самом бинаре очень часто все увидеть.

→ Ссылка