js解析protobuf

会游泳的拖鞋 2014-06-30 07:50:32
js如何解析protobuf。。。
1,服务端把数据经过protobuf,在经过64位编码发送到我客户端。
2,客户端用js解析。


(1),我在网上找到例子。把服务端给我的64位编码解析了。
(2),解析完以后,我要把它经过protobuf解析。(这里不会,我用的谷歌很早提供的protobuf-js也不行(它的js本身就有语法错误)。) http://blog.csdn.net/xnn2s/article/details/8580917博客说能够解决,但是我看到。(js plugin须要我们自己编译,步骤如下:1. 先下载整个protobuf,编译出protoc和各种lib库。)我遇到问题,1,它这个没法下载。2,我也不知道怎么编译。
不按照这个思路也行,只要js能解析protobuf就行。。。

(1)的例子在这儿
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
...全文
3259 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jeece_JX 2014-11-19
  • 打赏
  • 举报
回复
支持啊,感觉protobuf序列化后包大小要比json小很多
会游泳的拖鞋 2014-07-02
  • 打赏
  • 举报
回复
引用 6 楼 wh359126613 的回复:
[quote=引用 4 楼 showbo 的回复:] 用json不行吗。。谷歌的这个东东没研究过。。帮你up下,看如何解决
服务端不给提供json。。我只能自己搞了。。。唉。。[/quote] https://github.com/search?l=JavaScript&q=protobuf&ref=searchresults&type=Repositories
会游泳的拖鞋 2014-07-02
  • 打赏
  • 举报
回复
引用 5 楼 whos2002110 的回复:
这种序列化与反序列化能在浏览器里做么? 就像你说的,反序列化必需要有.proto文件的, 服务端做都很麻烦
我现在就在浏览器做的。但是使用到了html5中的对象,IE10以下不支持。。。。
会游泳的拖鞋 2014-07-02
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
用json不行吗。。谷歌的这个东东没研究过。。帮你up下,看如何解决
服务端不给提供json。。我只能自己搞了。。。唉。。
whos2002110 2014-07-02
  • 打赏
  • 举报
回复
这种序列化与反序列化能在浏览器里做么? 就像你说的,反序列化必需要有.proto文件的, 服务端做都很麻烦
  • 打赏
  • 举报
回复
用json不行吗。。谷歌的这个东东没研究过。。帮你up下,看如何解决
会游泳的拖鞋 2014-07-02
  • 打赏
  • 举报
回复
我现在已经能解析了,但是IE浏览器不支持。我的做法。https://github.com/dcodeIO/ProtoBuf.js/wiki 下载对应的js文件,引入。它对象声明方式有问题,需要做出一定修改。还要引入proto文件。谷歌,火狐浏览器测试通过,但是IE并不支持ArrayBuffer,所以IE不能解析。
会游泳的拖鞋 2014-07-01
  • 打赏
  • 举报
回复
帖子要沉的节奏。。。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧