#pragma once #include "WebUser.h" #include "Msg.h" namespace ver_1 { class SockIoUser : public WebUser { public: #if defined(HG_CMP_MSC) SockIoUser(WebServer* server, HGUInt id, const std::string& ip, uint16_t port, SOCKET sockConn); #else SockIoUser(WebServer* server, HGUInt id, const std::string& ip, uint16_t port, int sockConn); #endif virtual ~SockIoUser(); ManagerV1* GetManager(); void HandleCmd(const SockIoCmdParam* param); void HandleEvent(const SockIoEvtParam* param); protected: void PostCmdMsg(const HGByte* data, HGUInt dataSize); void PostEventMsg(const HGByte* data, HGUInt dataSize); virtual void ThreadFunc(); private: static void SaneEvent2(int code, const char* str, bool err, void* param); static void SaneImageCallback2(const char* name, const char *base64, void* param); static void GetMsgInfo(const SockIoCmdParam* param, std::string& user, std::string& data); bool ShakeHand(const std::string& head); void Pong(); bool SendResponse(const HGByte* data, HGUInt size, HGBool text); }; }