能搜到這篇文章的碼友們基本上都是開發(fā)中遇到了需要使用protobuf進(jìn)行數(shù)據(jù)傳輸,如果你對protobuf還一無所知,那么建議你去逛逛別的文章再回頭看看真竖,關(guān)于protobuf就不過多進(jìn)行介紹了钥飞。
這篇文章主要講述JavaScript使用protobuf對數(shù)據(jù)進(jìn)行反序列化百框,以及前后端數(shù)據(jù)傳輸可能遇到的問題琳要。
JavaScript使用protobuf進(jìn)行反序列化有兩種方法:使用官方的編譯器和使用protobuf.js庫寡具。
使用官方的編譯器
1、定義costmap.proto文件稚补。
比如跟后端定義好的文件如下:
2童叠、安裝ProtoBuf編譯器
下載ProtoBuf編譯器
從github上下載編譯器安裝包,https://github.com/protocolbuffers/protobuf/releases
這里選擇window的3.20.0版本下載
下載后解壓是這個樣子的
配置編譯器環(huán)境
把編譯器路徑添加到環(huán)境變量path课幕,保存重啟電腦厦坛。
cmd命令行輸入protoc -help檢查是否安裝成功
3、將.proto文件轉(zhuǎn)成js文件
protoc --js_out=import_style=commonjs,binary:. ./src/util/aa.proto
4乍惊、node.js編譯aa.js成獨(dú)立可用的js文件
先安裝依賴:
npm install -g require
npm install -g browserify
編寫protobuf_export.js文件:
使用browserify命令生成js文件:
browserify protobuf_export.js -o aa_new.js
生成的文件如下: