服务端和客户端pb版本是一致的吗?至少是兼容的
服务端的pb版本太老了呀 我用了pbjs 6.x 和 5.0 都不行~
然后我直接用服务端发了protoc 编译js 也解析不了。 所以就很迷了 不知道问题出在哪了
服务端和客户端都升级都同一个版本得了,折腾这么多天还不如用新版本抄一份协议文件
我也建议是服务器和客户端一起升级
我也想建议~ 但是老项目还在跑着 还挣着钱呢。 他们就不想换
看看你解析错误的地方在哪儿哪个字段什么类型,找到原因再看
可以把相同的数据在客户端和服务器encode,再对比看哪里不同,就知道哪里解析有问题了,再根据这个问题看是版本还是数据有问题
大佬 我发个pb和服务端的数据给您 能帮忙解析看看问题嘛~ 
发一下出问题的协议对应的message定义看下,从报错上看
1.协议两端不同步
2.定义的类型有问题


只知道是解析这个 PlayerInfo 出的问题
协议我和后端也确定过 他们保证是同步的。
定义类型的话 说是线上在使用的

这解析字节对不上,是不是忘了偏移cmd用的字节数,直接把服务器发来的数据传入进行decode
前32字节是索引,然后从33开始是int64 tai
前面cmd已经剪掉了。 这个协议在没有PlayerInfo的时候是正常解析的。
意思是不是我这边解析的时候以254结束了 而正常的应该是224+32=256才对

是的应该指向256才对,如果前面4个字段解析完是正确的,有点说不通,protobufjs 5.x或6.x还是基于proto2的语法,感觉还是offset偏移有点问题,从254开始就执行skipType说明第5个字段players应该是空数组,按上面说的没有players时是正常解析,现在players有值结果执行了skipType了,只能把收到的buff贴出来看看了
下面是proto2,3的区别

https://blog.csdn.net/ymzhu385/article/details/122307593
你这个信息都提供不全
- 解析错误的消息体 proto message
- 解析错误的消息体数据(和下面 buffer 对应)
- 解析错误的消息体 buffer(和上面数据对应)
解析错误的消息体 UserLoginRoom
解析错误的消息体数据 看里面提供的buffer (已经去cmd了)
还缺啥嘛
消息体数据呢?都没有数据怎么对比?你还没明白我说的意思。
用相同的数据在服务器和客户端 encode,再用两个数据的 bytes 数据做对比。就能知道问题在哪儿
我以前解决这个问题,是这样子的:让服务器把发过来的协议(16进制格式),跟自己收到的做对比.
如果一样,慢慢断点看看哪个数据异常.
这就是我说的意思