Protobuf之JavaScript客户端简单应用 用到的工具 protoc : 根据协议文件生成指定语言的protobuf代码 CommonJS : js模块化规范 npm : Nodejs包管理工具 browserify : CommonJS格式转换工具 protoc下载 : https:
Protobuf之JavaScript客户端简单应用
用到的工具
protoc : 根据协议文件生成指定语言的protobuf代码
CommonJS : js模块化规范
npm : Nodejs包管理工具
browserify : CommonJS格式转换工具
protoc下载 : https://github.com/google/protobuf/releases
安装相关npm工具
npm install -g require
npm install -g browserify
npm install google-protobuf
定义proto协议文件,这里用比较常用的用户登录为例
login.proto
syntax = "proto3";
// 用户登录
message c2s_login {
string email = 1;
string password = 2;
string captcha = 3;
}
protobuf js 代码生成(login_pb.js)
protoc --js_out=import_style=commonjs,binary:. ./login.proto
定义导出文件
exports.js
var loginProto = require("./login_pb");
module.exports = {
DataProto: loginProto
};
用browserify转换打包
browserify exports.js > protobuf.js
在浏览器中使用
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="protobuf.js" type="text/javascript"></script>
<title>Protobuf for JavaScript</title>
</head>
<body>
<script type="text/javascript"> var login = new proto.c2s_login(); login.setEmail("everyone@gmail.com"); login.setPassword("123456"); login.setCaptcha("abcd"); console.log("bytes:"+login.serializeBinary()); </script>
</body>
</html>
输出
参考:
http://www.voidcn.com/article/p-xbkhajzc-b.html
http://www.ruanyifeng.com/blog/2015/05/commonjs-in-browser.html