切換語言為:簡體
protobufjs解析proto訊息出錯RangeError: index out of range: 2499 + 10 > 2499解決辦法

protobufjs解析proto訊息出錯RangeError: index out of range: 2499 + 10 > 2499解決辦法

  • 爱糖宝
  • 2024-07-01
  • 2072
  • 0
  • 0

使用websocket通訊傳輸protobuf訊息的時候,decode的時候出錯了:

RangeError: index out of range: 2499 + 10 > 2499

Error: invalid wire type 4 at offset 1986

出現這種錯誤的時候,99%是因為proto裡面的訊息型別和服務端傳送的訊息型別不一致導致的。

解決這個問題的辦法有兩種

1.訊息型別要和服務端傳送的訊息型別每個欄位都要保持一致,這個可能對於你想解析別人資料的時候比較困難,因為你要明確知道每個欄位的訊息型別。


2.忽略這個你不知道的訊息欄位型別,就是不在proto檔案裡定義了,就當它不存在

比如我這裏定義了直播間訊息相關的proto檔案:

protobufjs解析proto訊息出錯RangeError: index out of range: 2499 + 10 > 2499解決辦法

因為這個訊息是抖音直播間傳送的,我也不確定裡面的訊息到底有哪些型別,所以就可以只要我們需要的的幾個訊息:

protobufjs解析proto訊息出錯RangeError: index out of range: 2499 + 10 > 2499解決辦法

用這樣的訊息結構去解析就不會有錯了。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.