`
yuancihang
  • 浏览: 144813 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

protobuf通信消息设计技巧备忘

    博客分类:
  • java
阅读更多

1. 有一个全局的ProtobufMessage, 所有的requestXXX, responseXXX都作为他的一个可选属性, 这样简单粗暴的避免了需要二次序列化反序列化的恶心问题

2. 有一个CommonMessage作为他的一个字段,用来存放公共字段。变相解决了reuqest消息和response消息的继承问题

3. 这样之后对于wireshark抓包后,反序列化以及格式化为JSON极其便利

 

 

syntax = "proto3";
option java_package = "com.example.foo";
option java_outer_classname = "Ponycopter";

import "google/protobuf/any.proto";

message CommonMessage {
	int64 userId = 1;
	string token = 2;
}

message ProtobufMessage {
	CommonMessage commonMessage = 1;
	SearchRequest searchRequest = 2;
	SearchResponse searchResponse = 3;
        ...
}

message SearchRequest {
	string query = 1;
}
message SearchResponse {
	
}
message ErrorStatus {
  string message = 1;
  repeated google.protobuf.Any details = 2;
  map<string, int32> projects = 3;
}

 

分享到:
评论

相关推荐

    Netty4+ProtoBuf通信框架

    Netty4+ProtoBuf通信框架是一种高效的网络应用框架,它结合了Netty的高性能和Google的Protocol Buffers(ProtoBuf)的数据序列化能力,用于构建可伸缩、高并发的网络应用程序。在这个项目中,客户端和服务端之间的...

    C++使用protobuf 作为网络消息协议

    标题中的"C++使用protobuf作为网络消息协议"指出,我们将探讨如何在C++编程环境中利用Protocol Buffers(protobuf)这一高效的数据序列化工具来构建网络通信的消息协议。protobuf是由Google开发的一种语言中立、平台...

    Unity与Netty进行ProtoBuf通信__

    为了实现高效的数据通信,开发者常常会结合其他技术,如Netty和ProtoBuf。本篇文章将深入探讨如何在Unity中利用ProtoBuf-net与Netty进行通信。 ProtoBuf(Protocol Buffers)是Google提出的一种数据序列化协议,它...

    Unity3D 与 Java 基于 Protobuf 通信实现(客户端)

    本教程将深入探讨如何利用Protocol Buffers(Protobuf)在Unity3D客户端与Java服务器之间实现通信。Protocol Buffers是一种高效的数据序列化协议,由Google开发,它能够将结构化数据转化为二进制格式,便于网络传输...

    socket通过传输protobuf通信

    标题 "socket通过传输protobuf通信" 描述了在Linux环境下,两个客户端(a和b)如何利用socket进行通信,并且为了确保字节对齐和高效的数据交换,采用了Protocol Buffers(protobuf)作为数据序列化工具。这里我们将...

    Unity与Java使用ProtoBuf通信的Demo__

    本Demo展示了如何在Unity中利用ProtoBuf与Java环境下的Netty服务器进行通信。 ProtoBuf是由Google开发的一种数据序列化协议,它能将结构化数据转化为二进制流,以减少网络传输的数据量,提高通信效率。Java和Unity...

    通信与协议Netty+Protobuf-游戏设计与开发(1)配套代码

    总结来说,"通信与协议Netty+Protobuf-游戏设计与开发(1)配套代码"是一个关于如何利用Netty进行网络通信以及如何使用Protobuf进行数据序列化的实例。通过学习这个资源,开发者可以更好地理解和掌握这两种技术在游戏...

    UE4使用protobuf与服务器通信

    ### UE4使用protobuf与服务器通信 #### 获取protobuf源代码及工具安装 为了在UE4(Unreal Engine 4)中使用protobuf进行网络通信,首先需要获取protobuf的源代码。这通常涉及以下步骤: 1. **安装Git for Windows...

    使用protobuf和gRPC实现消息订阅系统

    Protobuf是一套类似Json或者XML的数据传输格式和规范,用于不同应用或进程之间进行通信时使用。通信时所传递的信息是通过Protobuf定义的message数据结构进行打包,然后编译成二进制的码流再进行传输或者存储。本次...

    jmeter 5.1.1 tcp链接 发送protobuf消息到服务端,并返回结果的demo

    在本文中,我们将深入探讨如何使用JMeter 5.1.1版本进行TCP连接,发送protobuf消息到服务端,并接收返回的结果。这是一个基于Maven构建的项目,其中服务端使用了Vert.x框架和Kotlin语言。我们将从以下几个方面展开...

    在使用netty进行网络通信协议传输使用protobuf时protobuf编译.proto文件生成JAVA类.zip

    在使用netty进行网络通信协议传输使用protobuf时protobuf编译.proto文件生成JAVA类.zip 包括测试proto3.proto文件,自动protobuf编译.proto文件生成JAVA类

    在erlang项目中使用protobuf例子

    你可以使用protobuf在Erlang节点间交换消息,或者与其他支持protobuf的语言(如Java、Python等)进行通信。 7. **性能优化**:protobuf的优势在于其高效的序列化和反序列化算法,可以在保持数据紧凑的同时,快速地...

    ros2转protobuf,再转dds发出.

    6. **自定义DDS middleware**:因为protobuf消息需要转换成DDS可理解的格式,可能需要编写自定义的middleware层,负责在protobuf消息和DDS数据之间进行转换。 7. **构建流程**:理解如何配置CMakeLists.txt文件,使...

    ActiveMQ发送和接收protobuf协议消息的实例(精心整理,亲测可用)

    在Java环境中,protobuf提供了方便的API用于序列化和反序列化对象,使其成为一种理想的通信协议。 在ActiveMQ中,我们可以利用protobuf的这种特性来高效地发送和接收消息。首先,你需要在项目的`src`目录下创建...

    protobuf实例-C#-聊天服务器

    在本实例中,“protobuf实例-C#-聊天服务器”是基于C#语言实现的一个聊天服务项目,利用protobuf进行数据序列化和反序列化,以便于在网络通信中高效地传输聊天消息。 在C#环境下,protobuf提供了编译器工具,可以将...

    Android中基于protobuf的socket通信的实例

    本实例将深入探讨如何在Android应用中使用protobuf进行基于socket的通信。 首先,理解protobuf的基本原理是至关重要的。protobuf通过定义.proto文件来描述数据结构,然后使用protoc编译器生成对应语言的类文件。在...

    protobuf中文学习文档

    3. **API设计**: 在RESTful API中,protobuf作为消息格式可以提供高效的序列化和反序列化。 **六、protobuf工具链** 1. **protoc编译器**: 主要用于将.proto文件转换为目标语言的源代码。 2. **protobuf库**: 提供...

    DesignModel-master_设计模式_raysits_protobuf_zip_

    同时,它提到了"protobuf",这是一个Google开发的序列化框架,用于高效地处理结构化数据,常用于网络通信和数据存储。"C++库"表明这个项目是用C++语言编写的,而"zip"则表示这是一个压缩文件。 首先,让我们深入...

    protobufprotobufprotobufprotobuf

    3. 序列化与反序列化:在程序中,你可以创建protobuf消息对象,填充数据,然后使用protobuf库提供的函数将其序列化为二进制格式。反之,也可以从二进制数据中恢复原始的消息结构。 4. 文件存储与网络通信:protobuf...

    compile_protobuf_protobuf:compile_protobuf_

    在IT行业中,Protocol Buffers(通常简称为protobuf)是一种高效的数据序列化协议,由Google开发。它是用于结构化数据的...理解并熟练掌握protobuf的编译机制对于任何涉及网络通信或数据存储的IT项目都是非常重要的。

Global site tag (gtag.js) - Google Analytics