1313bool MessageQueue_HttpTask_Post (LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LPCXSTR lpszMsgBuffer, int nMsgLen)
1414{
1515 int nSDLen = 0 ;
16+ XNETHANDLE xhToken = 0 ;
1617 XCHAR tszSDBuffer[1024 ] = {};
1718 XCHAR tszKeyStr[MAX_PATH] = {};
1819 XCHAR tszVluStr[MAX_PATH] = {};
@@ -21,13 +22,13 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
2122 LPCXSTR lpszAPIGetTopic = _X (" gettopic" );
2223 LPCXSTR lpszAPIGetList = _X (" getlist" );
2324 LPCXSTR lpszAPIGetOnline = _X (" getonline" );
25+ LPCXSTR lpszAPICreateTopic = _X (" createtopic" );
2426 LPCXSTR lpszAPIDelTopic = _X (" deltopic" );
2527 LPCXSTR lpszAPIDelUser = _X (" deluser" );
2628
2729 // 判断是否需要验证,不是注册协议
2830 if (st_ServiceCfg.st_XAuthorize .bHTTPAuth && (0 != _tcsxnicmp (lpszAPIRegister, lpszFuncName, _tcsxlen (lpszAPIRegister))))
2931 {
30- XNETHANDLE xhToken = 0 ;
3132 if (ProtocolModule_Parse_Token (lpszMsgBuffer, nMsgLen, &xhToken))
3233 {
3334 if (!Session_Token_Get (xhToken))
@@ -149,35 +150,35 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
149150 XEngine_MQXService_Send (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
150151 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,发送的获取主题列表请求成功,获取到的主题列表个数:%d" ), lpszClientAddr, nListCount);
151152 }
153+ else if (0 == _tcsxnicmp (lpszAPICreateTopic, lpszFuncName, _tcsxlen (lpszAPICreateTopic)))
154+ {
155+ // http://127.0.0.1:5202/api?function=createtopic
156+
157+ XENGINE_PROTOCOL_XMQ st_MQProtocol = {};
158+ XENGINE_PROTOCOLHDR st_ProtocolHdr = {};
159+
160+ ProtocolModule_Parse_Name (lpszMsgBuffer, nMsgLen, st_MQProtocol.tszMQKey );
161+ APIHelp_MQHelp_JsonToHex (&st_ProtocolHdr);
162+
163+ st_ProtocolHdr.xhToken = xhToken;
164+ st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQTOPICCREATE;
165+ MessageQueue_TCP_Handle (&st_ProtocolHdr, lpszClientAddr, (LPCXSTR)&st_MQProtocol, sizeof (XENGINE_PROTOCOLHDR), XENGINE_MQAPP_NETTYPE_HTTP);
166+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,请求主题删除成功,主题名:%s" ), lpszClientAddr, st_MQProtocol.tszMQKey );
167+ }
152168 else if (0 == _tcsxnicmp (lpszAPIDelTopic, lpszFuncName, _tcsxlen (lpszAPIDelTopic)))
153169 {
154170 // http://127.0.0.1:5202/api?function=deltopic
155- XENGINE_DBTOPICOWNER st_DBOwner = {};
156- XENGINE_DBUSERKEY st_UserKey = {};
157- XENGINE_DBTIMERELEASE st_DBInfo = {};
158171
159- XCHAR tszTopicName[MAX_PATH] = {};
160- ProtocolModule_Parse_Name (lpszMsgBuffer, nMsgLen, tszTopicName);
172+ XENGINE_PROTOCOL_XMQ st_MQProtocol = {};
173+ XENGINE_PROTOCOLHDR st_ProtocolHdr = {};
174+
175+ ProtocolModule_Parse_Name (lpszMsgBuffer, nMsgLen, st_MQProtocol.tszMQKey );
176+ APIHelp_MQHelp_JsonToHex (&st_ProtocolHdr);
161177
162- _tcsxcpy (st_DBOwner.tszQueueName , tszTopicName);
163- _tcsxcpy (st_UserKey.tszKeyName , tszTopicName);
164- _tcsxcpy (st_DBInfo.tszQueueName , tszTopicName);
165- if (!DBModule_MQUser_OwnerDelete (&st_DBOwner))
166- {
167- ProtocolModule_Packet_Http (tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_NOTFOUND, " topic name not found" );
168- XEngine_MQXService_Send (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
169- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,请求HTTP删除主题失败,主题不存在:%s" ), lpszClientAddr, tszTopicName);
170- return false ;
171- }
172- // 清楚数据库
173- APIHelp_Counter_SerialDel (tszTopicName);
174- DBModule_MQData_DeleteTable (tszTopicName);
175- DBModule_MQUser_KeyDelete (&st_UserKey);
176- DBModule_MQUser_TimeDelete (&st_DBInfo);
177-
178- ProtocolModule_Packet_Http (tszSDBuffer, &nSDLen);
179- XEngine_MQXService_Send (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
180- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,请求主题删除成功,主题名:%s" ), lpszClientAddr, tszTopicName);
178+ st_ProtocolHdr.xhToken = xhToken;
179+ st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQTOPICDELETE;
180+ MessageQueue_TCP_Handle (&st_ProtocolHdr, lpszClientAddr, (LPCXSTR)&st_MQProtocol, sizeof (XENGINE_PROTOCOLHDR), XENGINE_MQAPP_NETTYPE_HTTP);
181+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,请求主题删除成功,主题名:%s" ), lpszClientAddr, st_MQProtocol.tszMQKey );
181182 }
182183 else if (0 == _tcsxnicmp (lpszAPIDelUser, lpszFuncName, _tcsxlen (lpszAPIDelUser)))
183184 {
0 commit comments