原文: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