#ifndef _GAMA_NETWORK_CHATSERVER_EVENT_HANDLER_ #define _GAMA_NETWORK_CHATSERVER_EVENT_HANDLER_ #include #include #include /** \namespace ClientNet Ŭ¶óÀÌ¾ðÆ®¿¡¼­ »ç¿ëÇÏ´Â ³×Æ®¿÷ °ü·Ã Ŭ·¡½º°¡ ¼ÓÇÑ ³×ÀÓ½ºÆäÀ̽º*/ namespace ClientNet { /** \class CChatServerEventHandler äÆÃ¼­¹ö¿Í ¸ð´ÏÅ͸µ Åø°£ Åë½Å*/ class CChatServerEventHandler : public CClientEventHandler { public: CChatServerEventHandler(unsigned int nServerGroup); virtual int OnOpen(int iErrorCode); virtual int OnClose(); static bool Connect(); virtual int OnDispatch(PktBase* lpPktBase, INET_Addr& peerAddr); static bool SendAuthPkt(char* szUserID, char* szPass); static bool SendChatOptPkt(unsigned int nServerGroup, unsigned char* szOption, unsigned char cOptionNum); static bool SendChatReqPkt(unsigned int nServerGroup, unsigned char cChatType, unsigned char cTargetType, unsigned long dwTargetUID, unsigned long dwMessageID, const CString& strGMName, const CString& strTargetName, const CString& strMsg); static bool SendAdminStatus(unsigned int nServerGroup, const CString& strAdminName, unsigned char cStatus); unsigned long GetLastPingRecvTime() { return m_dwLastPingRecvTime; } private: bool RecvAuthAck(PktBase* lpPktBase, INET_Addr& peerAddr); bool RecvChatData(PktBase* lpPktBase, INET_Addr& peerAddr); bool RecvChatPing(PktBase* lpPktBase, INET_Addr& peerAddr); bool RecvChatRequest(PktBase* lpPktBase, INET_Addr& peerAddr); unsigned int m_nServerGroup; unsigned long m_dwLastPingRecvTime; }; }; #endif