我們在各種語言開發中類的定義是可以互相巢狀的,也可以使用其他類作為自己的成員屬性型別。
在protobuf中同樣支援訊息巢狀,可以在乙個訊息中巢狀另外乙個訊息,字段型別可以是另外乙個訊息型別。
// 定義result訊息
message result
// 定義searchresponse訊息
message searchresponse
類似類巢狀一樣,訊息也可以巢狀。
例子:
message searchresponse
// 引用巢狀的訊息定義
repeated result results = 1;
}
我們在開發乙個專案的時候通常有很多訊息定義,都寫在乙個proto檔案,不方便維護,通常會將訊息定義寫在不同的proto檔案中,在需要的時候可以通過import匯入其他proto檔案定義的訊息。
例子:儲存檔案: result.proto
syntax = "proto3";
// result訊息定義
message result
儲存檔案: search_response.proto
syntax = "proto3";
// 匯入result訊息定義
import "result.proto";
// 定義searchresponse訊息
message searchresponse
protobuf 中的巢狀訊息的使用
protobuf的簡單的使用,不過還留下了乙個問題,那就是之前主要介紹的都是對簡單資料的賦值,簡單資料直接採用set xx 即可,但是如果不是簡單變數而是自定義的復合型別變數,就沒有簡單的set函式呼叫了,下面看乙個簡單的例子。在網路遊戲中,遊戲玩家之間的同步是乙個最基本的功能,而同步是通過對座標的...
protobuf巢狀類操作例項
protobuf類進行巢狀時,協議描述如下 客戶端拉取訊息請求包 message secret get req 訊息請求包封裝 message secret msg req 1 進行打包時的操作如下 secret get req stgetreq stgetreq.set version 1 sec...
用protobuf定義訊息及處理
用protobuf定義訊息及處理 金慶的專欄 訊息定義 package msgpb message msg 訊息傳送 void msgsender send const std string sdest,const msgpb msg msg void msgsender send const st...