使用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文件:
因為這個消息是抖音直播間發送的,我也不確定里面的消息到底有哪些類型,所以就可以只要我們需要的的幾個消息:
用這樣的消息結構去解析就不會有錯了。