E.data是ws获取的数据, 使用的是C++相关库. 用C++测试解码正常. 写入10个数组,以及TYPE=9
但是在JS中, 仅仅返回个初始化的对象. protobufjs6.8.8
ws.onmessage::
var buf = new Uint8Array(E.data);
var data = f.decode(buf);
data === {
Data: []
} 连Type都没有.
研究几个小时了, 没找到原因…
PROTO定义: syntax = "proto3"; package pb; message FrameMsg { string Id = 1; int32 Type = 2; bytes Data = 3; } message FrameMsgs{ int32 Type = 1; repeated FrameMsg Data= 2; }
C++ 发来的二进制数据:
Type:99 Data:<Id:"dsfsdfsafsadfsaklfskdafkjlsf" Type:15 Data:"{\"0\":\"\344\275\240\345\245\275\346\210\221\346\230\257\350\260\201111111111111111111111111111111111111111111111111111111111111111111111111111111111\"}" >............
解决了. 是编译的问题.