在测试PB协议的过程中出现,it is missing required fields: (cannot determine missing fields for lite message)。
查找资料说:required 类型的字段,必须设置值,否则,在解析的时候,会有这个提示。
pb协议在发送的时候,会根据结构中定义的字段,把设置值的字段打包到数据包中,然后发送出去。在接收方,接收到数据,然后去解析,这样对于required类型的字段,如果没有设置值,那数据包里肯定是没有的,那么,就会报错。
为了验证,觉得还是抓包一下比较靠谱。
抓包数据显示,如果没有设置值的required类型,确实没有,但是在解析的时候就报此错误。
然后,在发送的时候,加上值,再测试,就不报错了。
在开始的时候,给出的数据也是有问题,是一串超过正常包长度的数据,这个可能是接收数据缓存没有清空,或者收到了别的数据,这是另外一个问题了,同样需要解决的。