本文介紹了協(xié)議錯(cuò)誤確定要反序列化的消息類(lèi)型的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
使用協(xié)議Buf,我們可以定義消息并生成它們的類(lèi),每個(gè)類(lèi)都知道如何序列化/反序列化為二進(jìn)制。
假設(shè)我們已經(jīng)定義了多個(gè)不同的消息,
并且我們從線路上獲得了一些byte[],我們?nèi)绾未_定要使用適當(dāng)?shù)念?lèi)和反序列化的消息類(lèi)型呢?
推薦答案
不能。協(xié)議緩沖區(qū)的有線格式不編碼消息類(lèi)型,只編碼標(biāo)記號(hào)和類(lèi)型。
例如,以下協(xié)議的消息實(shí)例的wire格式將相同(顯然,字符串字段中的數(shù)據(jù)相同):
message Foo {
optional string foo_field = 1;
}
message Bar {
optional string field_contained_in_bar = 1;
}
如果僅設(shè)置了字符串字段,則以下消息的實(shí)例也可能具有相同的編碼:
message Baz {
optional string str = 1;
optional int32 num = 2;
}
您需要知道您期望接收的郵件類(lèi)型。
請(qǐng)參考編碼示例in the documentation。
這篇關(guān)于協(xié)議錯(cuò)誤確定要反序列化的消息類(lèi)型的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,