protobuf3.1.0 生成java文件------多协议传输类型说明

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39851704/article/details/80080833

不了解protobuf的先去了解下


项目需要用protobuf进行数据传输所以最近找了找资料,下面给大家一些我的经验


下拉找到3.1.0的压缩包
protoc-3.1.0-win32.zip

解压到任意盘的根目录,我的在C盘放着,


然后配置环境变量
右击此电脑点击属性》》高级系统设置》》环境变量》》点击系统变量的Path点击编辑
添加  ;C:\protoc-3.1.0-win32\bin     点击确定

打开cmd执行   protoc --version
配置完毕,下来开始编译

我在D盘创建了一个文件夹 用来编译保存生成的文件
然后再文件下新建java文件夹
接下来我们创建一个msg.proto


syntax 必须要加上相应的版本,否则编译会出错

v3版本貌似不需要添加属性前面的字段,加上之后编译出错


好了,接下来我们开始编译


点击目录栏,输入cmd如下图

接下来输入命令编译java文件

protoc.exe msg.proto --java_out=./


可以看到msg的java文件生成了,接下来我们说说netty中的应用


大家应该都知道netty自己封装的protobuf只能传输单一的数据类型如下图



只能解码出LoginRequest的消息,但是我们实际中肯定是多种协议,我们来定义一个proto文件。

注意一下 枚举这块enum,开始的第一个必须为0,不然编译出错,然后大家了解一下oneof这个字段

生成java文件之后我们再进行netty的改造

这里报错是因为没加包路径加上就好了

客户端发送过来的是Pig数据,而服务端回应的是一组人类的消息。
大概就是这样吧如有不足请大佬们指教.


展开阅读全文

没有更多推荐了,返回首页