public override void Process()
        {
            //using (LZ4_PT_CG_Lord_CreateLord_RS sendfmProtocol = new LZ4_PT_CG_Lord_CreateLord_RS())
            using (PT_CG_Lord_CreateLord_RS sendfmProtocol = new PT_CG_Lord_CreateLord_RS())
            {
                LordManager.Instance.TryAdd(m_lord);

                m_session.SetLord(m_lord, m_server);
                m_lord.GetInformation(sendfmProtocol);
                sendfmProtocol.m_eErrorCode = eErrorCode.Success;
                m_session.SendPacket(sendfmProtocol);
            }
        }
        public override void Process()
        {
            // 프로토콜 RQ
            using (var recvfmProtocol = new PT_CG_Lord_EnterWorld_RQ())
            {
                // 프로토콜 Read
                recvfmProtocol.Deserialize(m_recvPacket);

                // 프로토콜 RS
                using (var sendfmProtocol = new PT_CG_Lord_EnterWorld_RS())
                {
                    eErrorCode err   = eErrorCode.Success;
                    long       accid = 0;
                    // db get token
                    using (var db = new urq_GetToken(eRedis.Token))
                    {
                        db.i_strToken = recvfmProtocol.m_strToken;
                        err           = db.Execute();
                        accid         = db.o_biAccID;

                        if (eErrorCode.Success != err)
                        {
                            sendfmProtocol.m_eErrorCode = err;
                            m_session.SendPacket(sendfmProtocol);
                            return;
                        }
                    }

                    // 중복 처리
                    fmLord lord = null;
                    if (true == LordManager.Instance.CheckLogin(accid, out lord))
                    {
                        //if (lord.State == eLordState.Maze)
                        //{
                        //    // 유저의 응답 속도는 느려지겠지만 서버의 안정성을 보장 하진 못하나?
                        //    // 쓰레드 분리
                        //    //BattleExecuter.Instance.Push(new Msg_Maze_Delegate_Leave_RQ(m_server, lord));
                        //    return;
                        //}

                        long oldSessionId = lord.SessionId;
                        //Logger.Debug("oldSessionId: {0}", oldSessionId);

                        LordManager.Instance.Logout(lord);

                        if (m_session.GetNumber() != oldSessionId)
                        {
                            ClientSessionManager.Instance.OutBeforeSession(oldSessionId);
                        }
                    }

                    // db 영주 정보
                    using (var db = new urq_GetLord(eRedis.Game))
                    {
                        db.i_biAccID = accid;
                        err          = db.Execute();
                        lord         = db.o_lord;

                        if (eErrorCode.Success == err)
                        {
                            if (true == LordManager.Instance.TryAdd(lord))
                            {
                                m_session.SetLord(lord, m_server);
                                lord.GetInformation(sendfmProtocol);
                            }
                        }

                        sendfmProtocol.m_eErrorCode = err;
                        m_session.SendPacket(sendfmProtocol);

                        // 이렇게 한 이유는 패킷을 보내고 방송을 받기 위해서.
                        if (eErrorCode.Success == err)
                        {
                            db.o_lord.State = eLordState.Normal;
                        }
                    }
                }
            }
        }