我是靠谱客的博主 包容日记本,最近开发中收集的这篇文章主要介绍protobuf简单使用及其抓包分析_protobuf簡單測試應用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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)

}

})

}

具體效果:

d6a5985ebb572a02d2dbc420ad6f99c9.png

protobuf相比傳統的xml、json,數據傳輸更加緊湊,二進制協議也更加高效,非常適合於各種服務間的數據交換,目前各大主流語言基本都有具體實現。

最后

以上就是包容日记本为你收集整理的protobuf简单使用及其抓包分析_protobuf簡單測試應用的全部内容,希望文章能够帮你解决protobuf简单使用及其抓包分析_protobuf簡單測試應用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部