//处理接收到的同步DB消息 func dealReceiveDBMsgC2S(session *link.Session, msg packet.RAW) { protoMsg := dbProto.UnmarshalProtoMsg(msg) if protoMsg == dbProto.NullProtoMsg { return } switch protoMsg.ID { case dbProto.ID_DB_User_LoginC2S: userLogin(session, protoMsg) } }
//处理接收到的异步的DB消息 func dealReceiveAsyncDBMsgC2S(msg packet.RAW) { protoMsg := dbProto.UnmarshalProtoMsg(msg) if protoMsg == dbProto.NullProtoMsg { return } switch protoMsg.ID { case dbProto.ID_DB_User_UpdateLastLoginTimeC2S: updateUserLastLoginTime(session, protoMsg) } }
//处理接收到纯DB的消息 func dealReceiveDBMsgS2C(msg packet.RAW) { protoMsg := dbProto.UnmarshalProtoMsg(msg) if protoMsg == dbProto.NullProtoMsg { return } var session *link.Session = global.GetSession(protoMsg.Identification) if session == nil { return } switch protoMsg.ID { case dbProto.ID_DB_User_LoginS2C: userLoginCallBack(session, protoMsg) } }
func (this Handle) DealMsg(session *link.Session, msg []byte) { msgID := binary.GetUint16LE(msg[:2]) var protoMsg protos.ProtoMsg if systemProto.IsValidID(msgID) || logProto.IsValidID(msgID) || gameProto.IsValidID(msgID) { protoMsg = protos.UnmarshalProtoMsg(msg) } else if dbProto.IsValidID(msgID) { protoMsg = dbProto.UnmarshalProtoMsg(msg) } if protoMsg == protos.NullProtoMsg { ERR("收到Proto未处理消息:", msgID) return } if f, exists := this[msgID]; exists { f(session, protoMsg) } else { ERR("收到Handle未处理消息:", msgID) } }