ajax proto buf,protobufjs的简单介绍和使用

最近有这样一个需求:读取加密过的地图数据文件,并且根据给出的数据格式进行解密,从而取得数据。

protobufjs就是这样一种工具。

它是一种数据转换,序列化的工具。最初由google提出,并且开源之后吸引了各行业的人不断开发,优化,更新各个语言平台的版本。

话不多说,本篇文章注重实际需求,所以理论知识不会详细介绍,也算是给自己的一份备忘录啦。

安装

Node环境下

输入

npm i protobufjs

如果是5.0版本,可能还需要安装bytebuffer和long

截止2017/6/12,最新版本是6.73,因此优先介绍最新版本。

定义数据格式文件(proto)

根据需求,定义自己需要的数据格式proto文件。

proto文件定义的数据结构将用于数据转换的过程。

相当于一把“钥匙”,你拿着这把钥匙才能看到解码后的内容。

使用proto

使用proto文件有两个方法:

使用protobufjs对象的load()方法直接加载

使用命令行编译proto文件。生成自己需要的文件。你可以生成json文件,可以生成commonjs模块文件等等。

编译方法:

·npm i protobufjs -g

安装完成即可使用CLI

然后使用pbjs ....的命令即可编译。具体命令参考文档。注意版本差异。

读取文件,转换数据

不管你采用以上的哪一种方法,现在开始读取编码文件了。

你可以使用node.js的文件系统读取数据,也可以使用js的ajax读取数据。

读取数据之后,直接使用protobufjs的decode方法就可以了。具体语法可以参考最后给出的链接,对于protobufjs的其他知识都有详细介绍。

如果读取的data不对,你可能需要加一句

var datas = new Uint8Array(data)

5.0版本的异同

5.0版本使用new Builder()[message]等的方式定义。

decode的使用对象也有所差异,具体可参考文档。

官方github地址

官方API

protobuf语法指南

csdn介绍1

csdn介绍2

nodejs中使用protobufjs

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值