public void RequestLogin(ServerPacketData packetData) { var sessionID = packetData.SessionID; var sessionIndex = packetData.SessionIndex; MainServer.MainLogger.Debug("로그인 요청 받음"); try { if (SessionManager.EnableReuqestLogin(sessionIndex) == false) { ResponseLoginToClient(ERROR_CODE.LOGIN_ALREADY_WORKING, packetData.SessionID); return; } var reqData = MessagePackSerializer.Deserialize <PKTReqLogin>(packetData.BodyData); // 세션의 상태를 바꾼다 SessionManager.SetPreLogin(sessionIndex); // DB 작업 의뢰한다. var dbReqLogin = new DBReqLogin() { UserID = reqData.UserID, AuthToken = reqData.AuthToken }; var jobDatas = MessagePackSerializer.Serialize(dbReqLogin); var dbQueue = MakeDBQueue(PACKETID.REQ_DB_LOGIN, sessionID, sessionIndex, jobDatas); RequestDBJob(ServerNetwork.GetPacketDistributor(), dbQueue); MainServer.MainLogger.Debug("DB에 로그인 요청 보냄"); } catch (Exception ex) { // 패킷 해제에 의해서 로그가 남지 않도록 로그 수준을 Debug로 한다. MainServer.MainLogger.Error(ex.ToString()); } }