首页 > 其他分享 >protobufjs解析proto消息出错RangeError: index out of range: 2499 + 10 > 2499解决办法

protobufjs解析proto消息出错RangeError: index out of range: 2499 + 10 > 2499解决办法

时间:2024-07-01 11:31:06浏览次数:18  
标签:2499 index proto 消息 类型 解析 out

使用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文件:

因为这个消息是抖音直播间发送的,我也不确定里面的消息到底有哪些类型,所以就可以只要我们需要的的几个消息:

用这样的消息结构去解析就不会有错了。

标签:2499,index,proto,消息,类型,解析,out
From: https://blog.csdn.net/weixin_44786530/article/details/140069387

相关文章

  • 直播的js代码debug解析找到protobuf消息的定义
    我们都知道直播的弹幕消息是通过websocket发送的,而且是通过protobuf传输的,那么这里面传输了哪些内容,这个proto文件又要怎么定义?每个消息叫什么,消息里面又包含有哪些字段,每个字段又是什么类型?都可以通过js查看得到。找到解析入口上一节我们找到了_decodeFrameOrResponse,这里......
  • PostgreSQL的系统视图pg_statio_all_indexes
    PostgreSQL的系统视图pg_statio_all_indexes在PostgreSQL数据库中,pg_statio_all_indexes视图提供了有关所有索引的I/O活动的统计信息。这些统计信息对于了解索引的使用情况和性能调优非常有帮助。pg_statio_all_indexes视图的结构以下是pg_statio_all_indexes视......
  • yolov8训练过程中,出现IndexError:index 17 is out of bounds for dimension 1 with siz
     在用yolov8做数据训练自己的数据时发现,这样一个错误,困扰了我很久。报错的原因是数组的问题,我查了一下百度,说是定义数组的问题,之后我就慌的一批,这个源包这么多,该去哪排查。raceback(mostrecentcalllast):File"d:\jiaotong\ultralytics-8.1.0\mytrain.py",line10,......
  • js/ts prototype最简单且深刻的理角
    最关健的二点:1.js任何对象(函数也是对象)都有__proto__私有属性,有的可能会显示[[Prototype]](chorme浏览器),代码直接访问属性会报错,但可以正常运行的。__proto__只是另一个对象的引用(一般是类型对象,也可以修改)。2.只有函数对象Function才有.prototype属性,它本身就是一个对象,给......
  • 使用Element-plus的消息组件(ElMessage或ElNotification)时,出现z-index异常,导致被遮挡
    Nuxt3中使用ElementPlus的消息组件(ElMessage或ElNotification)时,出现z-index异常,导致被遮挡。背景介绍:我的页面中已经弹出了两个el-drawer组件,此种情况下我需要弹出一个提示信息。无论我是使用ElMessage,还是使用ElNotification都存在相同的问题,就是"遮罩层"给遮挡住以下......
  • [com.t.extend.SpringContextLoaderListener] - generate index.html sucess,ERROR or
    错误:2024-06-1913:23:09,873INFO[com.t.extend.SpringContextLoaderListener]-generateindex.htmlsucess13:23:10.159[RMITCPConnection(3)-127.0.0.1]ERRORorg.apache.struts2.dispatcher.Dispatcher-Dispatcherinitializationfailedcom.opensymphony.xwor......
  • 构建基于 LlamaIndex 的RAG AI Agent
    IbuiltacustomAIagentthatthinksandthenacts.Ididn'tinventitthough,theseagentsareknownasReActAgentsandI'llshowyouhowtobuildoneyourselfusingLlamaIndexinthistutorial.我构建了一个自定义的AI智能体,它能够思考然后行动。不过,这并不......
  • Ragas实践问题记录2 AttributeError: ‘TestsetGenerator‘ object has no attribute
    报错问题依然是在尝试官方文档“CompareLLMsusingRagasEvaluations”的“Createsynthetictestdata”步骤发生报错。官方文档以及文档中代码如下:Ragas:CompareLLMsusingRagasEvaluations官方文档中的代码:importosfromllama_indeximportdownload_loader,Simp......
  • protobuf
    模板syntax = "proto3"; // 指定 protobuf 的版本package example; // 定义包名// 导入其他 protobuf 文件import "google/protobuf/timestamp.proto";import "other_package/other_file.proto";// 定义一个枚举类型enum State {......
  • 解决vue项目报错 ERROR in Conflict:Multiple assets emit different content to the
    vue-cli创建项目ERROR in Conflict: Multiple assets emit different content to the same filename index.html问题的解决办法用vue-cli正常来创建新的项目在运行npmrundev或者npmrunserve有以下报错:ERRORinConflict:Multipleassetsemitdifferentco......