Netty 集成google ProtoBuf 开发私有协议

无情 阅读:707 2021-03-31 12:53:48 评论:0

ProtoBuf简介

protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。

官网地址:https://github.com/google/protobuf

ProtoBuf 生成私有协议详细步骤

第一步:下载protobuf执行工具包

protobuf 工具包下载地址:https://github.com/protocolbuffers/protobuf/releases/download/v4.0.0-rc2/protoc-4.0.0-rc-2-win64.zip

第二步:在C盘创建protoc 文件夹,并将下载protobuf.zip 包解压在当前文件中

注意:我把bin 文件夹中的protoc.exe 拷贝至protoc 文件夹中。

效果截图:

第三步:在protoc 文件夹中,创建CustomMsg.proto 协议文件

CustomMsg.proto 详细内容如下:

syntax = "proto3"; 
option java_package = "com.netty.protobuf"; 
option java_outer_classname="CustomMessageData"; 
 
message MessageData{ 
    int64 length = 1; 
    Content content = 2; 
    enum DataType { 
        REQ_LOGIN = 0; 
        RSP_LOGIN = 1; 
        PING = 2; 
        PONG = 3; 
        REQ_ACT = 4; 
        RSP_ACT = 5; 
        REQ_CMD = 6; 
        RSP_CMD = 7; 
        REQ_LOG = 8; 
        RSP_LOG = 9;  
    } 
    DataType order = 3; 
    message Content{ 
        int64 contentLength = 1; 
        string data = 2; 
    } 
} 

第四步:打开cmd 窗口,切换至指定文件夹(C:\protoc),并执行相关指令生成Java自定义协议实体对象。

自定义协议生成命令:

protoc.exe --proto_path=C:\protoc\ --java_out=C:\sjwt_workspace\netty_learn\src C:\protoc\CustomMsg.proto

自定义协议参数说明:

                               --proto_path: protoc.exe 所在文件夹路径地址

                              --java_out: 自定义协议生成Java实体对象存放路径地址\ 自定义proto 协议文件存放地址

效果截图:

现在可以将生成自定义协议实体对象拷贝至netty 项目中。

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号