用netty做客户端 msg.getDataType()就没问题
用js传过来的一直默认是 UserInfo = 0
这个该咋解决
.proto文件
message GamePro{
enum DataType{
UserInfo = 0;
Equip = 1;
Heartbeat = 2;
}
DataType data_type = 1;
oneof dataBody{
UserInfo userInfo = 2;
Equip equip = 3;
Heartbeat heartbeat = 4;
}
}
js
data{
userInfo:{
name:"aaa"
}
}
message = Message.create(data);
buf = Message.encode(message).finish();
webSocket.send(buf);
问题可能出现在js传递的protobuf数据中,只传递了userInfo字段,而没有传递data_type字段。因此在netty客户端中只能获取到默认值0,也就是UserInfo。需要在js中传递data_type字段,例如:
data{
data_type: 1,
equip:{
//equip数据
}
}
这样在netty客户端中就能正确获取到传递的protobuf类型了。