예제 #1
0
//处理接收到的同步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)
	}
}
예제 #3
0
//处理接收到纯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)
	}
}
예제 #4
0
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)
	}
}