能搜到这篇文章的码友们基本上都是开发中遇到了需要使用protobuf进行数据传输,如果你对protobuf还一无所知,那么建议你去逛逛别的文章再回头看看,关于protobuf就不过多进行介绍了。
这篇文章主要讲述JavaScript使用protobuf对数据进行反序列化,以及前后端数据传输可能遇到的问题。
JavaScript使用protobuf进行反序列化有两种方法:使用官方的编译器和使用protobuf.js库。
使用官方的编译器
1、定义costmap.proto文件。
比如跟后端定义好的文件如下:
2、安装ProtoBuf编译器
下载ProtoBuf编译器
从github上下载编译器安装包,https://github.com/protocolbuffers/protobuf/releases
这里选择window的3.20.0版本下载
下载后解压是这个样子的
配置编译器环境
把编译器路径添加到环境变量path,保存重启电脑。
cmd命令行输入protoc -help检查是否安装成功
3、将.proto文件转成js文件
protoc --js_out=import_style=commonjs,binary:. ./src/util/aa.proto
4、node.js编译aa.js成独立可用的js文件
先安装依赖:
npm install -g require
npm install -g browserify
编写protobuf_export.js文件:
使用browserify命令生成js文件:
browserify protobuf_export.js -o aa_new.js
生成的文件如下: