概述
protobuf是google推出的一種數據交換協議,比較適合應用於底層服務交互,nodejs提供protobufjs包的實現,下面是一個簡單的測試demo:
首先是.proto文件:
package desktop;
syntax = "proto3";
message helloworld
{
required int32 id = 1; // id
required string str = 2; // str
optional int32 opt = 3; // optional field
}
然后是一個測試的nodejs程序,主要是加載.proto文件->實例化message->message buffer化->將buffer保存進log文件:
var ProtoBuf = require("protobufjs");
var PORT = 33333;
var HOST = '127.0.0.1';
var fs = require('fs');
var root = ProtoBuf.loadSync("./desktop.helloworld.proto"),
HelloWorld = root.lookupType("desktop.helloworld");
var hw = {
'id': 101,
'str': 'helloworld!'
}
var errMsg = HelloWorld.verify(hw)
console.log(errMsg)
if (errMsg) {
throw errMsg
} else {
var message = HelloWorld.create(hw)
var buffer = HelloWorld.encode(message).finish()
var message = HelloWorld.decode(buffer)
console.log(message)
fs.writeFile('./test.log', buffer, err => {
if (!err) {
console.log('Done!')
} else {
console.err(err)
}
})
}
具體效果:
protobuf相比傳統的xml、json,數據傳輸更加緊湊,二進制協議也更加高效,非常適合於各種服務間的數據交換,目前各大主流語言基本都有具體實現。
最后
以上就是包容日记本为你收集整理的protobuf简单使用及其抓包分析_protobuf簡單測試應用的全部内容,希望文章能够帮你解决protobuf简单使用及其抓包分析_protobuf簡單測試應用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复