本文介紹了協(xié)議錯(cuò)誤確定要反序列化的消息類型的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
使用協(xié)議Buf,我們可以定義消息并生成它們的類,每個(gè)類都知道如何序列化/反序列化為二進(jìn)制。
假設(shè)我們已經(jīng)定義了多個(gè)不同的消息,
并且我們從線路上獲得了一些byte[],我們?nèi)绾未_定要使用適當(dāng)?shù)念惡头葱蛄谢南㈩愋湍兀?/p>
推薦答案
不能。協(xié)議緩沖區(qū)的有線格式不編碼消息類型,只編碼標(biāo)記號(hào)和類型。
例如,以下協(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;
}
您需要知道您期望接收的郵件類型。
請(qǐng)參考編碼示例in the documentation。
這篇關(guān)于協(xié)議錯(cuò)誤確定要反序列化的消息類型的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,