Skip to content

Commit 1fe6ec5

Browse files
committed
fixed:some protocol not reply and parse process failure
1 parent f5ff11d commit 1fe6ec5

1 file changed

Lines changed: 30 additions & 6 deletions

File tree

XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,18 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
110110
int nListCount = 0;
111111
XCHAR** pptszListAddr;
112112

113-
ProtocolModule_Parse_Type(lpszMsgBuffer, nMsgLen, &nType);
113+
if (!ProtocolModule_Parse_Type(lpszMsgBuffer, nMsgLen, &nType))
114+
{
115+
ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_PARSE, _X("json load parse is failure"));
116+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
117+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获取在线用户失败,负载内容错误:%s"), lpszClientAddr, lpszMsgBuffer);
118+
return false;
119+
}
114120
SessionModule_Client_GetListAddr(&pptszListAddr, &nListCount, nType);
115121
ProtocolModule_Packet_OnlineList(tszSDBuffer, &nSDLen, &pptszListAddr, nListCount);
116122
BaseLib_Memory_Free((XPPPMEM)&pptszListAddr, nListCount);
117123
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
124+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP消息端:%s,获取在线列表信息成功,在线用户数:%d"), lpszClientAddr, nListCount);
118125
}
119126
else if (0 == _tcsxncmp(lpszAPIGetNumber, lpszFuncName, _tcsxlen(lpszAPIGetNumber)))
120127
{
@@ -145,19 +152,24 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
145152
ProtocolModule_Packet_MQNumber(tszSDBuffer, &nSDLen, &st_MQNumber);
146153
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
147154
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP消息端:%s,获取主题序列编号成功,主题名称:%s,队列个数:%lld,开始编号:%lld,结尾编号:%lld"), lpszClientAddr, st_MQNumber.tszMQKey, st_MQNumber.nCount, st_MQNumber.nFirstNumber, st_MQNumber.nLastNumber);
148-
149-
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
150155
}
151156
else if (0 == _tcsxncmp(lpszAPIGetTopic, lpszFuncName, _tcsxlen(lpszAPIGetTopic)))
152157
{
153158
//主题 http://127.0.0.1:5202/api?function=gettopic
154159
int nDBCount = 0;
155160
XENGINE_PROTOCOL_XMQ st_MQProtocol = {};
156161

157-
ProtocolModule_Parse_XMQ(lpszMsgBuffer, nMsgLen, &st_MQProtocol);
162+
if (!ProtocolModule_Parse_XMQ(lpszMsgBuffer, nMsgLen, &st_MQProtocol))
163+
{
164+
ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_PARSE, _X("json load parse is failure"));
165+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
166+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求获取主题信息失败,负载内容错误:%s"), lpszClientAddr, lpszMsgBuffer);
167+
return false;
168+
}
158169
DBModule_MQData_GetLeftCount(st_MQProtocol.tszMQKey, 0, &nDBCount);
159170
ProtocolModule_Packet_TopicName(tszSDBuffer, &nSDLen, st_MQProtocol.tszMQKey, nDBCount);
160171
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
172+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP消息端:%s,获取主题信息成功,主题名称:%s"), lpszClientAddr, st_MQProtocol.tszMQKey);
161173
}
162174
else if (0 == _tcsxncmp(lpszAPIGetList, lpszFuncName, _tcsxlen(lpszAPIGetList)))
163175
{
@@ -233,7 +245,13 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
233245
XENGINE_DBTIMERELEASE st_DBInfo = {};
234246
XENGINE_PROTOCOL_XMQ st_MQProtocol = {};
235247

236-
ProtocolModule_Parse_XMQ(lpszMsgBuffer, nMsgLen, &st_MQProtocol);
248+
if (!ProtocolModule_Parse_XMQ(lpszMsgBuffer, nMsgLen, &st_MQProtocol))
249+
{
250+
ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_PARSE, _X("json load parse is failure"));
251+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
252+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求删除主题失败,负载内容错误:%s"), lpszClientAddr, lpszMsgBuffer);
253+
return false;
254+
}
237255

238256
_tcsxcpy(st_DBOwner.tszUserName, st_MQProtocol.tszMQUsr);
239257
_tcsxcpy(st_DBOwner.tszQueueName, st_MQProtocol.tszMQKey);
@@ -270,7 +288,13 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
270288
XENGINE_PROTOCOL_XMQ st_MQProtocol = {};
271289
XENGINE_DBMESSAGEQUEUE st_MessageQueue = {};
272290

273-
ProtocolModule_Parse_XMQ(lpszMsgBuffer, nMsgLen, &st_MQProtocol);
291+
if (!ProtocolModule_Parse_XMQ(lpszMsgBuffer, nMsgLen, &st_MQProtocol))
292+
{
293+
ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_PARSE, _X("json load parse is failure"));
294+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
295+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求删除消息失败,负载内容错误:%s"), lpszClientAddr, lpszMsgBuffer);
296+
return false;
297+
}
274298

275299
if (st_MQProtocol.nSerial <= 0)
276300
{

0 commit comments

Comments
 (0)