//反序列化消息 func UnmarshalProtoMsg(msg []byte) ProtoMsg { if len(msg) < 10 { return NullProtoMsg } msgID := binary.GetUint16LE(msg[:2]) if !IsValidID(msgID) { return NullProtoMsg } identification := binary.GetUint64LE(msg[2:10]) msgBody := protos.GetMsgObject(msgID) if msgBody == nil { return NullProtoMsg } err := proto.Unmarshal(msg[10:], msgBody) if err != nil { return NullProtoMsg } return ProtoMsg{ ID: msgID, Body: msgBody, Identification: identification, } }
//反序列化 func UnmarshalProtoMsg(msg []byte) ProtoMsg { if len(msg) < 2 { return NullProtoMsg } msgID := binary.GetUint16LE(msg[:2]) if !IsValidID(msgID) { return NullProtoMsg } msgBody := protos.GetMsgObject(msgID) if msgBody == nil { return NullProtoMsg } err := proto.Unmarshal(msg[2:], msgBody) if err != nil { return NullProtoMsg } return ProtoMsg{ ID: msgID, Body: msgBody, } }