原文:Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据

Protobuf序列化的字节流数据是不能自描述的,当我们通过socket把数据发送到Client时,Client必须知道发送的是什么类型的数据,才能正确的反序列化它。这严重影响限制了C S功能的实现,不解决的话信道事实上只能传输一种类型的数据。本文讲解一下我用的解决办法,虽然我觉得应该有官方的实现更合理,即原生支持Protobuf的自描述。 在金融领域,有一个叫FAST的协议,基本原理和Proto ...

2016-06-12 15:09 6 38260 推荐指数:

查看详情

二.protobuf3数据类型

定义数据类型 首先让我们看一个非常简单的例子。假设您想要定义搜索请求消息格式,其中每个搜索请求都有一个查询字符串、您感兴趣的特定结果页面以及每页的结果数量。这是用来定义消息类型的.proto文件。 syntax = "proto3"; message SearchRequest ...

Thu Sep 12 01:20:00 CST 2019 0 2623
九.Protobuf3特殊类型

Protobuf3 Any类型 Any消息类型允许您将消息作为嵌入类型,而不需要它们 .proto定义。Any包含任意序列化的消息(字节),以及一个URL,该URL充当该消息的全局唯一标识符并解析为该消息的类型。要使用Any类型,你需要导入google/protobuf/any.proto. ...

Thu Sep 12 01:50:00 CST 2019 0 514
三.protobuf3标量值类型

Protobuf3 标量值类型 标量消息字段可以具有以下类型之一——该表显示了.proto文件中指定的类型,以及自动生成的类中的相应类型: .proto类型 说明 C++ 类型 Java 类型 Python类型 Go类型 Ruby ...

Thu Sep 12 01:22:00 CST 2019 0 714
七.Protobuf3 嵌套类型

Protobuf3 嵌套类型 您可以在其他消息类型中定义和使用消息类型,如下例所示:这里Result消息是在SearchResponse消息中定义的: message SearchResponse { message Result { string url ...

Thu Sep 12 01:30:00 CST 2019 0 982
十四.Protobuf3扩展

在您发布使用Protocol Buffer区的代码后,您迟早会因为业务需求变更想要“改进”Protocol Buffer的定义。如果你想让你的新Protocol Buffer向后兼容,让你的旧Prot ...

Thu Sep 12 21:08:00 CST 2019 0 402
五.Protobuf3 枚举

Protobuf3 枚举 定义消息类型时,您可能希望它的一个字段有一个预定义的值列表。例如,假设您希望为每个SearchRequest添加一个corpus字段,其中语料库可以是UNIVERSAL、WEB、IMAGES、LOCAL、NEWS、PRODUCTS 或VIDEO。您可以非常简单 ...

Thu Sep 12 01:28:00 CST 2019 0 2611
php使用protobuf3

简介:Google Protocol Buffer(简称Protobuf)是google公司内部的混合语言数据标准,目前已经正在使用的有超过48,162种报文格式定义和超过12183个.proto文件。他们用于RPC系统和持续数据存储系统。 Protocol Buffers是一种轻便高效的结构化 ...

Sat Sep 07 00:56:00 CST 2019 0 1211
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM