Closed orzogc closed 4 years ago
另外说一下, Program.cs 这里应该用 ZtLiveScNotifySignal
才对
用int32/int64
而不是uint32/uint64
是因为,它App端用的是int/long
java直到java 8才有官方实现的unsigned int/long,protobuf的官方实现是将uint32/uint64转换为java里的int/long:https://github.com/protocolbuffers/protobuf/blob/master/java/core/src/main/java/com/google/protobuf/FieldType.java#L45 从A站网页端的js代码来看,A站官方的proto是用uint32/uint64的
如果你在js文件里看PacketHeader
的结构会发现AcFun在Im.Basic
里大部分使用的是int32/int64
,所以我在zt.live.interactive
里就默认为int32/int64
看protobuf的序列化CodeOutputStream和反序列化代码CodeInputStream,可以看到使用的都是long
,换句话说,protobuf在java对uint32/uint64
的处理方式和int32/int64
是一样的
既然你坚持,那我就改回来吧
TopUser
的field number的错误NEW_LIVE_OPENED