Skip to content

Commit 8ad6a0f

Browse files
committed
modify:http request info api to post and post verification
modify:The http protocol distinguishes the API's get information
1 parent 07eac2a commit 8ad6a0f

File tree

1 file changed

+86
-3
lines changed

1 file changed

+86
-3
lines changed

XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp

Lines changed: 86 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,15 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
1414
{
1515
int nSDLen = 0;
1616
XCHAR tszSDBuffer[1024] = {};
17+
XCHAR tszKeyStr[MAX_PATH] = {};
18+
XCHAR tszVluStr[MAX_PATH] = {};
1719
LPCXSTR lpszAPIRegister = _X("register");
18-
LPCXSTR lpszAPIDelete = _X("delete");
19-
20+
LPCXSTR lpszAPIGetUser = _X("getuser");
21+
LPCXSTR lpszAPIGetTopic = _X("gettopic");
22+
LPCXSTR lpszAPIGetList = _X("getlist");
23+
LPCXSTR lpszAPIGetOnline = _X("getonline");
24+
LPCXSTR lpszAPIDelTopic = _X("deltopic");
25+
LPCXSTR lpszAPIDelUser = _X("deluser");
2026
//判断请求
2127
if (0 == _tcsxnicmp(lpszAPIRegister, lpszFuncName, _tcsxlen(lpszAPIRegister)))
2228
{
@@ -79,7 +85,84 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
7985
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
8086
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求用户注册成功,用户名:%s,密码:%s"), lpszClientAddr, st_UserInfo.tszUserName, st_UserInfo.tszUserPass);
8187
}
82-
else if (0 == _tcsxnicmp(lpszAPIDelete, lpszFuncName, _tcsxlen(lpszAPIDelete)))
88+
else if (0 == _tcsxnicmp(lpszAPIGetUser, lpszFuncName, _tcsxlen(lpszAPIGetUser)))
89+
{
90+
//用户 http://127.0.0.1:5202/api?function=getuser
91+
int nListCount = 0;
92+
XENGINE_PROTOCOL_USERINFO** ppSt_UserInfo;
93+
DBModule_MQUser_UserList(&ppSt_UserInfo, &nListCount);
94+
ProtocolModule_Packet_UserList(tszSDBuffer, &nSDLen, &ppSt_UserInfo, nListCount);
95+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
96+
BaseLib_Memory_Free((XPPPMEM)&ppSt_UserInfo, nListCount);
97+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送的获取用户列表请求成功,获取到的用户列表个数:%d"), lpszClientAddr, nListCount);
98+
}
99+
else if (0 == _tcsxnicmp(lpszAPIGetOnline, lpszFuncName, _tcsxlen(lpszAPIGetOnline)))
100+
{
101+
//获取在线用户 http://127.0.0.1:5202/api?function=getonline
102+
int nType = 0;
103+
int nListCount = 0;
104+
XCHAR** pptszListAddr;
105+
106+
ProtocolModule_Parse_Type(lpszMsgBuffer, nMsgLen, &nType);
107+
SessionModule_Client_GetListAddr(&pptszListAddr, &nListCount, nType);
108+
ProtocolModule_Packet_OnlineList(tszSDBuffer, &nSDLen, &pptszListAddr, nListCount);
109+
BaseLib_Memory_Free((XPPPMEM)&pptszListAddr, nListCount);
110+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
111+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送的获取在线用户列表请求成功,获取到的列表个数:%d,类型:%d"), lpszClientAddr, nListCount, nType);
112+
}
113+
else if (0 == _tcsxnicmp(lpszAPIGetTopic, lpszFuncName, _tcsxlen(lpszAPIGetTopic)))
114+
{
115+
//主题 http://127.0.0.1:5202/api?function=gettopic
116+
int nDBCount = 0;
117+
XCHAR tszTopicName[MAX_PATH] = {};
118+
ProtocolModule_Parse_Name(lpszMsgBuffer, nMsgLen, tszTopicName);
119+
DBModule_MQData_GetLeftCount(tszTopicName, 0, &nDBCount);
120+
ProtocolModule_Packet_TopicName(tszSDBuffer, &nSDLen, tszTopicName, nDBCount);
121+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
122+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送的获取主题列表请求成功,获取到的主题:%s 消息个数:%d"), lpszClientAddr, tszTopicName, nDBCount);
123+
}
124+
else if (0 == _tcsxnicmp(lpszAPIGetList, lpszFuncName, _tcsxlen(lpszAPIGetList)))
125+
{
126+
//主题 http://127.0.0.1:5202/api?function=getlist
127+
int nListCount = 0;
128+
XCHAR** ppszTableName;
129+
DBModule_MQData_ShowTable(&ppszTableName, &nListCount);
130+
ProtocolModule_Packet_TopicList(tszSDBuffer, &nSDLen, &ppszTableName, nListCount);
131+
BaseLib_Memory_Free((XPPPMEM)&ppszTableName, nListCount);
132+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
133+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送的获取主题列表请求成功,获取到的主题列表个数:%d"), lpszClientAddr, nListCount);
134+
}
135+
else if (0 == _tcsxnicmp(lpszAPIDelTopic, lpszFuncName, _tcsxlen(lpszAPIDelTopic)))
136+
{
137+
//http://127.0.0.1:5202/api?function=deltopic
138+
XENGINE_DBTOPICOWNER st_DBOwner = {};
139+
XENGINE_DBUSERKEY st_UserKey = {};
140+
XENGINE_DBTIMERELEASE st_DBInfo = {};
141+
142+
XCHAR tszTopicName[MAX_PATH] = {};
143+
ProtocolModule_Parse_Name(lpszMsgBuffer, nMsgLen, tszTopicName);
144+
145+
_tcsxcpy(st_DBOwner.tszQueueName, tszTopicName);
146+
_tcsxcpy(st_UserKey.tszKeyName, tszTopicName);
147+
_tcsxcpy(st_DBInfo.tszQueueName, tszTopicName);
148+
if (!DBModule_MQUser_OwnerDelete(&st_DBOwner))
149+
{
150+
ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_NOTFOUND, "topic name not found");
151+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
152+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求HTTP删除主题失败,主题不存在:%s"), lpszClientAddr, tszTopicName);
153+
return false;
154+
}
155+
//清楚数据库
156+
APIHelp_Counter_SerialDel(tszTopicName);
157+
DBModule_MQData_DeleteTable(tszTopicName);
158+
DBModule_MQUser_KeyDelete(&st_UserKey);
159+
DBModule_MQUser_TimeDelete(&st_DBInfo);
160+
161+
ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen);
162+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
163+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求主题删除成功,主题名:%s"), lpszClientAddr, tszTopicName);
164+
}
165+
else if (0 == _tcsxnicmp(lpszAPIDelUser, lpszFuncName, _tcsxlen(lpszAPIDelUser)))
83166
{
84167
XENGINE_PROTOCOL_USERINFO st_UserInfo = {};
85168
if (!ProtocolModule_Parse_Register(lpszMsgBuffer, nMsgLen, &st_UserInfo))

0 commit comments

Comments
 (0)