code_app/sdk/webservice/SockIoUser.h

34 lines
975 B
C++

#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 ScanCallback(HGUInt event, void* value1, void* value2, 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);
};
}