From 39869f7aa85f0980c8b6e50e683c01e8b23b7d74 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 29 May 2025 11:20:08 +0800 Subject: [PATCH 01/24] update:depend library update:match xengine v9.20 --- .../MQCore_ConfigModule/Config_Define.h | 12 +++++----- .../MQCore_DBModule/DBModule_Define.h | 6 ++--- .../DBModule_MQUser/DBModule_MQUser.cpp | 2 +- .../DBModule_MQUser/DBModule_MQUser.h | 2 +- .../MemoryCache_DBData/MemoryCache_DBData.cpp | 4 ++-- .../MemoryCache_DBData/MemoryCache_DBData.h | 4 ++-- .../MemoryCache_DBUser/MemoryCache_DBUser.cpp | 2 +- .../MemoryCache_DBUser/MemoryCache_DBUser.h | 2 +- .../MQCore_MemoryCache/MemoryCache_Define.h | 2 +- XEngine_Source/XEngine_Depend | 2 +- .../MQService_HTTPTask/MQService_HTTPGet.cpp | 2 +- .../MQService_HTTPTask/MQService_HTTPPost.cpp | 6 ++--- .../MQService_HttpTask.cpp | 8 +++---- .../XEngine_MQServiceApp/MQService_HttpTask.h | 2 +- .../MQService_MQTTTask.cpp | 8 +++---- .../XEngine_MQServiceApp/MQService_MQTTTask.h | 2 +- .../XEngine_MQServiceApp/MQService_Net.cpp | 24 +++++++++---------- .../XEngine_MQServiceApp/MQService_Net.h | 24 +++++++++---------- .../MQService_TCPTask.cpp | 10 ++++---- .../XEngine_MQServiceApp/MQService_TCPTask.h | 2 +- .../XEngine_MQServiceApp/MQService_Task.cpp | 4 ++-- .../XEngine_MQServiceApp/MQService_Task.h | 4 ++-- .../XEngine_MQServiceApp/MQService_WSTask.cpp | 8 +++---- .../XEngine_MQServiceApp/MQService_WSTask.h | 2 +- .../XEngine_MQServiceApp.cpp | 2 +- XEngine_Source/XQueue_ProtocolHdr.h | 4 ++-- 26 files changed, 75 insertions(+), 75 deletions(-) diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Define.h b/XEngine_Source/MQCore_ConfigModule/Config_Define.h index 438f52f..93234fb 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Define.h +++ b/XEngine_Source/MQCore_ConfigModule/Config_Define.h @@ -34,7 +34,7 @@ typedef struct }st_XMax; struct { - XCHAR tszLOGFile[MAX_PATH]; + XCHAR tszLOGFile[XPATH_MAX]; int nMaxSize; int nMaxCount; int nLogLeave; @@ -50,10 +50,10 @@ typedef struct }st_XSql; struct { - XCHAR tszPassRegister[MAX_PATH]; - XCHAR tszPassUNReg[MAX_PATH]; - XCHAR tszPassLogin[MAX_PATH]; - XCHAR tszPassLogout[MAX_PATH]; + XCHAR tszPassRegister[XPATH_MAX]; + XCHAR tszPassUNReg[XPATH_MAX]; + XCHAR tszPassLogin[XPATH_MAX]; + XCHAR tszPassLogout[XPATH_MAX]; int nTimeout; }st_XPass; struct @@ -71,7 +71,7 @@ typedef struct struct { bool bEnable; - XCHAR tszAPIUrl[MAX_PATH]; + XCHAR tszAPIUrl[XPATH_MAX]; XCHAR tszServiceName[128]; }st_XReport; struct diff --git a/XEngine_Source/MQCore_DBModule/DBModule_Define.h b/XEngine_Source/MQCore_DBModule/DBModule_Define.h index f107773..5515bab 100644 --- a/XEngine_Source/MQCore_DBModule/DBModule_Define.h +++ b/XEngine_Source/MQCore_DBModule/DBModule_Define.h @@ -39,8 +39,8 @@ typedef struct //用户消息 typedef struct { - XCHAR tszUserName[MAX_PATH]; //用户名 - XCHAR tszKeyName[MAX_PATH]; //绑定的KEY + XCHAR tszUserName[XPATH_MAX]; //用户名 + XCHAR tszKeyName[XPATH_MAX]; //绑定的KEY XCHAR tszUPTime[64]; //最后更新时间 XCHAR tszCreateTime[64]; //创建的时间 __int64x nKeySerial; //包序列号 @@ -55,7 +55,7 @@ typedef struct ////////////////////////////////////////////////////////////////////////// // 导出的回调 ////////////////////////////////////////////////////////////////////////// -typedef void(CALLBACK* CALLBACK_MESSAGEQUEUE_MODULE_DATABASE_TIMEPUBLISH)(XENGINE_DBTIMERELEASE* pSt_DBInfo, XPVOID lParam); +typedef void(XCALLBACK* CALLBACK_MESSAGEQUEUE_MODULE_DATABASE_TIMEPUBLISH)(XENGINE_DBTIMERELEASE* pSt_DBInfo, XPVOID lParam); ////////////////////////////////////////////////////////////////////////// // 导出的函数 ////////////////////////////////////////////////////////////////////////// diff --git a/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.cpp b/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.cpp index be3ef70..aea78cc 100644 --- a/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.cpp +++ b/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.cpp @@ -1173,7 +1173,7 @@ bool CDBModule_MQUser::DBModule_MQUser_OwnerTopicUPDate(LPCXSTR lpszSourceTable, ////////////////////////////////////////////////////////////////////////// // 线程函数 ////////////////////////////////////////////////////////////////////////// -XHTHREAD CALLBACK CDBModule_MQUser::DBModule_MQUser_TimeThread(XPVOID lParam) +XHTHREAD XCALLBACK CDBModule_MQUser::DBModule_MQUser_TimeThread(XPVOID lParam) { CDBModule_MQUser* pClass_This = (CDBModule_MQUser*)lParam; diff --git a/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.h b/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.h index 51473ce..eb662e0 100644 --- a/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.h +++ b/XEngine_Source/MQCore_DBModule/DBModule_MQUser/DBModule_MQUser.h @@ -44,7 +44,7 @@ class CDBModule_MQUser bool DBModule_MQUser_OwnerQuery(XENGINE_DBTOPICOWNER* pSt_DBOwner); bool DBModule_MQUser_OwnerTopicUPDate(LPCXSTR lpszSourceTable, LPCXSTR lpszDestTable); protected: - static XHTHREAD CALLBACK DBModule_MQUser_TimeThread(XPVOID lParam); + static XHTHREAD XCALLBACK DBModule_MQUser_TimeThread(XPVOID lParam); private: shared_ptr pSTDThread; private: diff --git a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.cpp b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.cpp index 6921db8..acc4431 100644 --- a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.cpp +++ b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.cpp @@ -286,7 +286,7 @@ bool CMemoryCache_DBData::MemoryCache_DBData_QueueInsert(LPCXSTR lpszSQLStr, XEN ////////////////////////////////////////////////////////////////////////// // 线程函数 ////////////////////////////////////////////////////////////////////////// -XHTHREAD CALLBACK CMemoryCache_DBData::DBModule_MQUser_TimeThread(XPVOID lParam) +XHTHREAD XCALLBACK CMemoryCache_DBData::DBModule_MQUser_TimeThread(XPVOID lParam) { CMemoryCache_DBData* pClass_This = (CMemoryCache_DBData*)lParam; @@ -325,7 +325,7 @@ XHTHREAD CALLBACK CMemoryCache_DBData::DBModule_MQUser_TimeThread(XPVOID lParam) } return 0; } -XHTHREAD CALLBACK CMemoryCache_DBData::DBModule_MQUser_InsertThread(XPVOID lParam) +XHTHREAD XCALLBACK CMemoryCache_DBData::DBModule_MQUser_InsertThread(XPVOID lParam) { CMemoryCache_DBData* pClass_This = (CMemoryCache_DBData*)lParam; diff --git a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.h b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.h index 6870c48..0af6e9f 100644 --- a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.h +++ b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBData/MemoryCache_DBData.h @@ -52,8 +52,8 @@ class CMemoryCache_DBData public: bool MemoryCache_DBData_QueueInsert(LPCXSTR lpszSQLStr, XENGINE_DBMESSAGEQUEUE* pSt_DBMessageInfo); protected: - static XHTHREAD CALLBACK DBModule_MQUser_TimeThread(XPVOID lParam); - static XHTHREAD CALLBACK DBModule_MQUser_InsertThread(XPVOID lParam); + static XHTHREAD XCALLBACK DBModule_MQUser_TimeThread(XPVOID lParam); + static XHTHREAD XCALLBACK DBModule_MQUser_InsertThread(XPVOID lParam); private: bool bIsRun = false; int m_nTimeLast = 0; diff --git a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.cpp b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.cpp index fc0e9a8..c962963 100644 --- a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.cpp +++ b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.cpp @@ -214,7 +214,7 @@ bool CMemoryCache_DBUser::MemoryCache_DBUser_DataDelete(XENGINE_PROTOCOL_USERINF ////////////////////////////////////////////////////////////////////////// // 线程函数 ////////////////////////////////////////////////////////////////////////// -XHTHREAD CALLBACK CMemoryCache_DBUser::DBModule_MQUser_TimeThread(XPVOID lParam) +XHTHREAD XCALLBACK CMemoryCache_DBUser::DBModule_MQUser_TimeThread(XPVOID lParam) { CMemoryCache_DBUser* pClass_This = (CMemoryCache_DBUser*)lParam; diff --git a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.h b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.h index 171dc88..5de8359 100644 --- a/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.h +++ b/XEngine_Source/MQCore_MemoryCache/MemoryCache_DBUser/MemoryCache_DBUser.h @@ -31,7 +31,7 @@ class CMemoryCache_DBUser bool MemoryCache_DBUser_DataQuery(XENGINE_PROTOCOL_USERINFO* pSt_DBUserInfo); bool MemoryCache_DBUser_DataDelete(XENGINE_PROTOCOL_USERINFO* pSt_DBUserInfo); protected: - static XHTHREAD CALLBACK DBModule_MQUser_TimeThread(XPVOID lParam); + static XHTHREAD XCALLBACK DBModule_MQUser_TimeThread(XPVOID lParam); private: bool bIsRun = false; int m_nTimeLast = 0; diff --git a/XEngine_Source/MQCore_MemoryCache/MemoryCache_Define.h b/XEngine_Source/MQCore_MemoryCache/MemoryCache_Define.h index 7f27fd2..4dfa424 100644 --- a/XEngine_Source/MQCore_MemoryCache/MemoryCache_Define.h +++ b/XEngine_Source/MQCore_MemoryCache/MemoryCache_Define.h @@ -19,7 +19,7 @@ typedef enum ////////////////////////////////////////////////////////////////////////// // 导出的回调 ////////////////////////////////////////////////////////////////////////// -typedef void(CALLBACK* CALLBACK_MESSAGEQUEUE_MODULE_DATABASE_CACHE)(ENUM_MEMORYCACHE_CALLBACK_TYPE enMemoryType, bool bSuccess, size_t nListCount, XPVOID pSt_DBInfo, XPVOID lParam); +typedef void(XCALLBACK* CALLBACK_MESSAGEQUEUE_MODULE_DATABASE_CACHE)(ENUM_MEMORYCACHE_CALLBACK_TYPE enMemoryType, bool bSuccess, size_t nListCount, XPVOID pSt_DBInfo, XPVOID lParam); ////////////////////////////////////////////////////////////////////////// // 导出的函数 ////////////////////////////////////////////////////////////////////////// diff --git a/XEngine_Source/XEngine_Depend b/XEngine_Source/XEngine_Depend index b9427ac..78d2ea2 160000 --- a/XEngine_Source/XEngine_Depend +++ b/XEngine_Source/XEngine_Depend @@ -1 +1 @@ -Subproject commit b9427ac1eb1183eb76ae73c61b2cf0fb27448aa4 +Subproject commit 78d2ea2cfcfa4701e122ee3e4ac536f712831f86 diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPGet.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPGet.cpp index 36c02d2..230faf7 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPGet.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPGet.cpp @@ -14,7 +14,7 @@ bool MessageQueue_HttpTask_Get(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, XCH { int nSDLen = 0; XCHAR tszSDBuffer[1024] = {}; - XCHAR tszKeyStr[MAX_PATH] = {}; + XCHAR tszKeyStr[XPATH_MAX] = {}; LPCXSTR lpszAPILogin = _X("login"); LPCXSTR lpszAPIUPDate = _X("update"); diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp index 8b6cf3c..c66baca 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp @@ -15,8 +15,8 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP int nSDLen = 0; XNETHANDLE xhToken = 0; XCHAR tszSDBuffer[1024] = {}; - XCHAR tszKeyStr[MAX_PATH] = {}; - XCHAR tszVluStr[MAX_PATH] = {}; + XCHAR tszKeyStr[XPATH_MAX] = {}; + XCHAR tszVluStr[XPATH_MAX] = {}; LPCXSTR lpszAPIRegister = _X("register"); LPCXSTR lpszAPIGetUser = _X("getuser"); LPCXSTR lpszAPIGetTopic = _X("gettopic"); @@ -131,7 +131,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP { //主题 http://127.0.0.1:5202/api?function=gettopic int nDBCount = 0; - XCHAR tszTopicName[MAX_PATH] = {}; + XCHAR tszTopicName[XPATH_MAX] = {}; ProtocolModule_Parse_Name(lpszMsgBuffer, nMsgLen, tszTopicName); DBModule_MQData_GetLeftCount(tszTopicName, 0, &nDBCount); ProtocolModule_Packet_TopicName(tszSDBuffer, &nSDLen, tszTopicName, nDBCount); diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp index 7d43b8f..10e0ac6 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp @@ -1,6 +1,6 @@ #include "MQService_Hdr.h" -XHTHREAD CALLBACK MessageQueue_HttpThread(XPVOID lParam) +XHTHREAD XCALLBACK MessageQueue_HttpThread(XPVOID lParam) { int nThreadPos = *(int*)lParam; nThreadPos++; @@ -29,7 +29,7 @@ XHTHREAD CALLBACK MessageQueue_HttpThread(XPVOID lParam) if (HttpProtocol_Server_GetMemoryEx(xhHTTPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_HTTPReqparam, &ppszHdrList, &nHdrCount)) { MessageQueue_Http_Handle(&st_HTTPReqparam, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, ppszHdrList, nHdrCount); - BaseLib_Memory_FreeCStyle((VOID**)&ptszMsgBuffer); + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer); BaseLib_Memory_Free((XPPPMEM)&ppszHdrList, nHdrCount); } } @@ -42,8 +42,8 @@ bool MessageQueue_Http_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST { int nPKTLen = 4096; XCHAR tszPKTBuffer[4096] = {}; - XCHAR tszKey[MAX_PATH] = {}; - XCHAR tszValue[MAX_PATH] = {}; + XCHAR tszKey[XPATH_MAX] = {}; + XCHAR tszValue[XPATH_MAX] = {}; LPCXSTR lpszPostMethod = _X("POST"); LPCXSTR lpszGetMethod = _X("GET"); diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.h b/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.h index 826c6bd..f4b4be1 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.h @@ -1,4 +1,4 @@ #pragma once -XHTHREAD CALLBACK MessageQueue_HttpThread(XPVOID lParam); +XHTHREAD XCALLBACK MessageQueue_HttpThread(XPVOID lParam); bool MessageQueue_Http_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, XCHAR** pptszListHdr, int nHdrCount); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.cpp index 0e84c1c..ee1e8fa 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.cpp @@ -1,6 +1,6 @@ #include "MQService_Hdr.h" -XHTHREAD CALLBACK MessageQueue_MQTTThread(XPVOID lParam) +XHTHREAD XCALLBACK MessageQueue_MQTTThread(XPVOID lParam) { int nThreadPos = *(int*)lParam; nThreadPos++; @@ -108,7 +108,7 @@ bool MQService_MQTT_Handle(LPCXSTR lpszClientAddr, MQTTPROTOCOL_FIXEDHEADER* pSt else if (XENGINE_RFCCOMPONENTS_MQTT_PROTOCOL_TYPE_SUBSCRIBE == pSt_MQTTHdr->byMsgType) { XSHOT wMsgID = 0; - XCHAR tszTopicName[MAX_PATH] = {}; + XCHAR tszTopicName[XPATH_MAX] = {}; int nListCount = 0; MQTTPROTOCOL_HDRPROPERTY** ppSt_HDRProperty; MQTTPROTOCOL_HDRSUBSCRIBE st_SubScribe = {}; @@ -137,7 +137,7 @@ bool MQService_MQTT_Handle(LPCXSTR lpszClientAddr, MQTTPROTOCOL_FIXEDHEADER* pSt else if (XENGINE_RFCCOMPONENTS_MQTT_PROTOCOL_TYPE_UNSUBSCRIBE == pSt_MQTTHdr->byMsgType) { XSHOT wMsgID = 0; - XCHAR tszTopicName[MAX_PATH] = {}; + XCHAR tszTopicName[XPATH_MAX] = {}; int nListCount = 0; MQTTPROTOCOL_HDRPROPERTY** ppSt_HDRProperty; @@ -166,7 +166,7 @@ bool MQService_MQTT_Handle(LPCXSTR lpszClientAddr, MQTTPROTOCOL_FIXEDHEADER* pSt { int nListCount = 0; XSHOT wMsgID = 0; - XCHAR tszTopicName[MAX_PATH] = {}; + XCHAR tszTopicName[XPATH_MAX] = {}; XENGINE_PROTOCOLHDR st_ProtocolHdr = {}; MQTTPROTOCOL_HDRPROPERTY** ppSt_HDRProperty; diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.h b/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.h index fb6d6c7..b8c7fe9 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.h @@ -1,4 +1,4 @@ #pragma once -XHTHREAD CALLBACK MessageQueue_MQTTThread(XPVOID lParam); +XHTHREAD XCALLBACK MessageQueue_MQTTThread(XPVOID lParam); bool MQService_MQTT_Handle(LPCXSTR lpszClientAddr, MQTTPROTOCOL_FIXEDHEADER* pSt_MQTTHdr, LPCXSTR lpszMSGBuffer, int nMSGLen); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp index ce31543..d50b1a5 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp @@ -1,12 +1,12 @@ #include "MQService_Hdr.h" ////////////////////////////////////////////////////////////////////////// -bool CALLBACK MessageQueue_Callback_TCPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +bool XCALLBACK MessageQueue_Callback_TCPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { HelpComponents_Datas_CreateEx(xhTCPPacket, lpszClientAddr, 0); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO,_X("TCP客户端连接,TCP客户端地址:%s"),lpszClientAddr); return true; } -void CALLBACK MessageQueue_Callback_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg,int nMsgLen,XPVOID lParam) +void XCALLBACK MessageQueue_Callback_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg,int nMsgLen,XPVOID lParam) { if (!HelpComponents_Datas_PostEx(xhTCPPacket, lpszClientAddr, lpszRecvMsg, nMsgLen)) { @@ -15,17 +15,17 @@ void CALLBACK MessageQueue_Callback_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSoc } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _X("投递TCP数据包到消息队列成功,%d"), nMsgLen); } -void CALLBACK MessageQueue_Callback_TCPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_TCPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { XEngine_MQXService_Close(lpszClientAddr, XENGINE_MQAPP_NETTYPE_TCP, false); } ////////////////////////////////////////////////////////////////////////// -bool CALLBACK MessageQueue_Callback_MQTTLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +bool XCALLBACK MessageQueue_Callback_MQTTLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { MQTTProtocol_Parse_Insert(lpszClientAddr); return true; } -void CALLBACK MessageQueue_Callback_MQTTRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_MQTTRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { if (!MQTTProtocol_Parse_Send(lpszClientAddr, lpszRecvMsg, nMsgLen)) { @@ -34,18 +34,18 @@ void CALLBACK MessageQueue_Callback_MQTTRecv(LPCXSTR lpszClientAddr, XSOCKET hSo } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _X("投递MQTT数据包到消息队列成功,%d"), nMsgLen); } -void CALLBACK MessageQueue_Callback_MQTTLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_MQTTLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { XEngine_MQXService_Close(lpszClientAddr, XENGINE_MQAPP_NETTYPE_MQTT, false); } ////////////////////////////////////////////////////////////////////////// -bool CALLBACK MessageQueue_Callback_HttpLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +bool XCALLBACK MessageQueue_Callback_HttpLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { HttpProtocol_Server_CreateClientEx(xhHTTPPacket, lpszClientAddr, 0); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端连接,HTTP客户端地址:%s"), lpszClientAddr); return true; } -void CALLBACK MessageQueue_Callback_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { if (!HttpProtocol_Server_InserQueueEx(xhHTTPPacket, lpszClientAddr, lpszRecvMsg, nMsgLen)) { @@ -53,18 +53,18 @@ void CALLBACK MessageQueue_Callback_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSo return; } } -void CALLBACK MessageQueue_Callback_HttpLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_HttpLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { XEngine_MQXService_Close(lpszClientAddr, XENGINE_MQAPP_NETTYPE_HTTP, false); } ////////////////////////////////////////////////////////////////////////// -bool CALLBACK MessageQueue_Callback_WSLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +bool XCALLBACK MessageQueue_Callback_WSLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { RfcComponents_WSPacket_CreateEx(xhWSPacket, lpszClientAddr, 0); XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("Websocket客户端连接,Websocket客户端地址:%s"), lpszClientAddr); return true; } -void CALLBACK MessageQueue_Callback_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam) { bool bLogin = false; RfcComponents_WSPacket_GetLoginEx(xhWSPacket, lpszClientAddr, &bLogin); @@ -88,7 +88,7 @@ void CALLBACK MessageQueue_Callback_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSock XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("WEBSOCKET客户端:%s 与服务器握手成功"), lpszClientAddr); } } -void CALLBACK MessageQueue_Callback_WSLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) +void XCALLBACK MessageQueue_Callback_WSLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam) { XEngine_MQXService_Close(lpszClientAddr, XENGINE_MQAPP_NETTYPE_WEBSOCKET, false); } diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h index 78b8b52..3a1b1fa 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h @@ -1,20 +1,20 @@ #pragma once -bool CALLBACK MessageQueue_Callback_TCPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); //用户连接 -void CALLBACK MessageQueue_Callback_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg,int nMsgLen,XPVOID lParam); //接受到数据 -void CALLBACK MessageQueue_Callback_TCPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); //用户离开 +bool XCALLBACK MessageQueue_Callback_TCPLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); //用户连接 +void XCALLBACK MessageQueue_Callback_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg,int nMsgLen,XPVOID lParam); //接受到数据 +void XCALLBACK MessageQueue_Callback_TCPLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); //用户离开 -bool CALLBACK MessageQueue_Callback_MQTTLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); -void CALLBACK MessageQueue_Callback_MQTTRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); -void CALLBACK MessageQueue_Callback_MQTTLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +bool XCALLBACK MessageQueue_Callback_MQTTLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +void XCALLBACK MessageQueue_Callback_MQTTRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); +void XCALLBACK MessageQueue_Callback_MQTTLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); -bool CALLBACK MessageQueue_Callback_HttpLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); -void CALLBACK MessageQueue_Callback_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); -void CALLBACK MessageQueue_Callback_HttpLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +bool XCALLBACK MessageQueue_Callback_HttpLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +void XCALLBACK MessageQueue_Callback_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); +void XCALLBACK MessageQueue_Callback_HttpLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); -bool CALLBACK MessageQueue_Callback_WSLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); -void CALLBACK MessageQueue_Callback_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); -void CALLBACK MessageQueue_Callback_WSLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +bool XCALLBACK MessageQueue_Callback_WSLogin(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); +void XCALLBACK MessageQueue_Callback_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam); +void XCALLBACK MessageQueue_Callback_WSLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); void XEngine_MQXService_Close(LPCXSTR lpszClientAddr, int nIPProto, bool bHeart); bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nIPProto); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp index b0d53ce..11165a1 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp @@ -1,6 +1,6 @@ #include "MQService_Hdr.h" -XHTHREAD CALLBACK MessageQueue_TCPThread(XPVOID lParam) +XHTHREAD XCALLBACK MessageQueue_TCPThread(XPVOID lParam) { int nThreadPos = *(int*)lParam; nThreadPos++; @@ -26,7 +26,7 @@ XHTHREAD CALLBACK MessageQueue_TCPThread(XPVOID lParam) if (HelpComponents_Datas_GetMemoryEx(xhTCPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_ProtocolHdr)) { MessageQueue_TCP_Handle(&st_ProtocolHdr, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, XENGINE_MQAPP_NETTYPE_TCP); - BaseLib_Memory_FreeCStyle((VOID**)&ptszMsgBuffer); + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer); } } } @@ -153,7 +153,7 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC } else if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSEROUT == pSt_ProtocolHdr->unOperatorCode) { - XCHAR tszUserName[MAX_PATH] = {}; + XCHAR tszUserName[XPATH_MAX] = {}; XENGINE_PROTOCOL_USERINFO st_ProtocolInfo = {}; if (!SessionModule_Client_GetUser(lpszClientAddr, tszUserName)) @@ -197,7 +197,7 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC } else if (ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_XMQ == pSt_ProtocolHdr->unOperatorType) { - XCHAR tszUserName[MAX_PATH] = {}; + XCHAR tszUserName[XPATH_MAX] = {}; XENGINE_PROTOCOL_XMQ st_MQProtocol = {}; //根据协议处理 if (XENGINE_MQAPP_NETTYPE_HTTP == nNetType) @@ -455,7 +455,7 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC { //有过期时间,判断是否过期 __int64x nTimeRet = 0; - XCHAR tszTimeStr[MAX_PATH] = {}; + XCHAR tszTimeStr[XPATH_MAX] = {}; BaseLib_Time_TimeToStr(tszTimeStr); BaseLib_TimeSpan_GetForStr(st_MessageQueue.tszQueueLeftTime, tszTimeStr, &nTimeRet, 3); //如果超时并且不允许主动获取,返回错误 diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.h b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.h index fe77a25..65370fb 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.h @@ -1,4 +1,4 @@ #pragma once -XHTHREAD CALLBACK MessageQueue_TCPThread(XPVOID lParam); +XHTHREAD XCALLBACK MessageQueue_TCPThread(XPVOID lParam); bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp index e37030e..24ed959 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp @@ -1,6 +1,6 @@ #include "MQService_Hdr.h" -void CALLBACK MessageQueue_CBTask_TimePublish(XENGINE_DBTIMERELEASE* pSt_DBInfo, XPVOID lParam) +void XCALLBACK MessageQueue_CBTask_TimePublish(XENGINE_DBTIMERELEASE* pSt_DBInfo, XPVOID lParam) { int nMsgLen = 0; XCHAR tszMsgBuffer[4096]; @@ -63,7 +63,7 @@ void CALLBACK MessageQueue_CBTask_TimePublish(XENGINE_DBTIMERELEASE* pSt_DBInfo, } XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("定时任务,消息主题:%s,序列:%lld,定时任务分发成功,客户端个数:%d"), pSt_DBInfo->tszQueueName, pSt_DBInfo->nIDMsg, nListCount); } -void CALLBACK MessageQueue_CBTask_MemoryCache(ENUM_MEMORYCACHE_CALLBACK_TYPE enMemoryType, bool bSuccess, size_t nListCount, XPVOID pSt_DBInfo, XPVOID lParam) +void XCALLBACK MessageQueue_CBTask_MemoryCache(ENUM_MEMORYCACHE_CALLBACK_TYPE enMemoryType, bool bSuccess, size_t nListCount, XPVOID pSt_DBInfo, XPVOID lParam) { if (ENUM_MEMORYCACHE_CALLBACK_TYPE_DATA_QUERY == enMemoryType) { diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Task.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Task.h index 2f5f5a5..42ba7b0 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Task.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Task.h @@ -1,4 +1,4 @@ #pragma once -void CALLBACK MessageQueue_CBTask_TimePublish(XENGINE_DBTIMERELEASE* pSt_DBInfo, XPVOID lParam); -void CALLBACK MessageQueue_CBTask_MemoryCache(ENUM_MEMORYCACHE_CALLBACK_TYPE enMemoryType, bool bSuccess, size_t nListCount, XPVOID pSt_DBInfo, XPVOID lParam); \ No newline at end of file +void XCALLBACK MessageQueue_CBTask_TimePublish(XENGINE_DBTIMERELEASE* pSt_DBInfo, XPVOID lParam); +void XCALLBACK MessageQueue_CBTask_MemoryCache(ENUM_MEMORYCACHE_CALLBACK_TYPE enMemoryType, bool bSuccess, size_t nListCount, XPVOID pSt_DBInfo, XPVOID lParam); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.cpp index e85eeda..a8ceb30 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.cpp @@ -1,6 +1,6 @@ #include "MQService_Hdr.h" -XHTHREAD CALLBACK MessageQueue_WebsocketThread(XPVOID lParam) +XHTHREAD XCALLBACK MessageQueue_WebsocketThread(XPVOID lParam) { int nThreadPos = *(int*)lParam; nThreadPos++; @@ -24,7 +24,7 @@ XHTHREAD CALLBACK MessageQueue_WebsocketThread(XPVOID lParam) if (RfcComponents_WSPacket_GetMemoryEx(xhWSPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &enOPCode)) { MessageQueue_Websocket_Handle(ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, enOPCode); - BaseLib_Memory_FreeCStyle((VOID**)&ptszMsgBuffer); + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer); } } } @@ -37,14 +37,14 @@ bool MessageQueue_Websocket_Handle(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer if (ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_CLOSE == enOPCode) { int nSDLen = 0; - XCHAR tszMSGBuffer[MAX_PATH] = {}; + XCHAR tszMSGBuffer[XPATH_MAX] = {}; RfcComponents_WSCodec_EncodeMsg(NULL, tszMSGBuffer, &nSDLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_CLOSE); NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, tszMSGBuffer, nSDLen); } else if (ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_PING == enOPCode) { int nSDLen = 0; - XCHAR tszMSGBuffer[MAX_PATH] = {}; + XCHAR tszMSGBuffer[XPATH_MAX] = {}; RfcComponents_WSCodec_EncodeMsg(NULL, tszMSGBuffer, &nSDLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_PONG); NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, tszMSGBuffer, nSDLen); } diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.h b/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.h index c4116c0..ee1b79c 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.h @@ -1,4 +1,4 @@ #pragma once -XHTHREAD CALLBACK MessageQueue_WebsocketThread(XPVOID lParam); +XHTHREAD XCALLBACK MessageQueue_WebsocketThread(XPVOID lParam); bool MessageQueue_Websocket_Handle(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE enOPCode); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/XEngine_MQServiceApp.cpp b/XEngine_Source/XEngine_MQServiceApp/XEngine_MQServiceApp.cpp index 25a8e72..30aa972 100644 --- a/XEngine_Source/XEngine_MQServiceApp/XEngine_MQServiceApp.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/XEngine_MQServiceApp.cpp @@ -92,7 +92,7 @@ static int ServiceApp_Deamon(int wait) LONG WINAPI Coredump_ExceptionFilter(EXCEPTION_POINTERS* pExceptionPointers) { static int i = 0; - XCHAR tszFileStr[MAX_PATH] = {}; + XCHAR tszFileStr[XPATH_MAX] = {}; XCHAR tszTimeStr[128] = {}; BaseLib_Time_TimeToStr(tszTimeStr); _xstprintf(tszFileStr, _X("./XEngine_Coredump/dumpfile_%s_%d.dmp"), tszTimeStr, i++); diff --git a/XEngine_Source/XQueue_ProtocolHdr.h b/XEngine_Source/XQueue_ProtocolHdr.h index 35c88c4..120fb74 100644 --- a/XEngine_Source/XQueue_ProtocolHdr.h +++ b/XEngine_Source/XQueue_ProtocolHdr.h @@ -107,8 +107,8 @@ typedef struct //消息队列服务协议 typedef struct { - XCHAR tszMQKey[MAX_PATH]; //此消息的KEY,不填就是 XEngine_CommKey - XCHAR tszMQUsr[MAX_PATH]; //此消息接受用户 + XCHAR tszMQKey[XPATH_MAX]; //此消息的KEY,不填就是 XEngine_CommKey + XCHAR tszMQUsr[XPATH_MAX]; //此消息接受用户 __int64x nSerial; //包序列号 __int64x nPubTime; //发布时间,根据自己需求配置时区,-1表示投递的消息通过用户主动获取,0表示即时发布消息给当前订阅的在线用户,>0表示发布的日期 int nKeepTime; //可用时间,单位秒,>0 超时秒数 From 96dbbb43d016a6fdcc867fd1cdb35f707e7cb1d5 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 11 Jun 2025 09:43:34 +0800 Subject: [PATCH 02/24] update:depend library --- XEngine_Source/XEngine_Depend | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_Depend b/XEngine_Source/XEngine_Depend index 78d2ea2..66e6bf3 160000 --- a/XEngine_Source/XEngine_Depend +++ b/XEngine_Source/XEngine_Depend @@ -1 +1 @@ -Subproject commit 78d2ea2cfcfa4701e122ee3e4ac536f712831f86 +Subproject commit 66e6bf39df14cd66d4bcbbb44a3e168ff75fed99 From 580ac65971efe08183d4a34067c66dfe1ff9feeb Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Wed, 11 Jun 2025 09:44:21 +0800 Subject: [PATCH 03/24] fixed:sometime load configure memory leak --- .../Config_Json/Config_Json.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp b/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp index f6b7f8f..39f2bb5 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp +++ b/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp @@ -43,21 +43,12 @@ bool CConfig_Json::Config_Json_File(LPCXSTR lpszConfigFile,XENGINE_SERVERCONFIG Config_dwErrorCode = ERROR_MQ_MODULE_CONFIG_JSON_PARAMENT; return false; } - int nCount = 0; - XCHAR tszMsgBuffer[4096]; - while (1) - { - int nRet = fread(tszMsgBuffer + nCount, 1, 2048, pSt_File); - if (nRet <= 0) - { - break; - } - nCount += nRet; - } + XCHAR tszMsgBuffer[4096] = {}; + size_t nSize = fread(tszMsgBuffer, 1, sizeof(tszMsgBuffer), pSt_File); fclose(pSt_File); std::unique_ptr const pSt_JsonReader(st_JsonBuilder.newCharReader()); - if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nCount, &st_JsonRoot, &st_JsonError)) + if (!pSt_JsonReader->parse(tszMsgBuffer, tszMsgBuffer + nSize, &st_JsonRoot, &st_JsonError)) { Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MQ_MODULE_CONFIG_JSON_PARSE; From e219e08dc1697195cbbfa75a3e6d1d7bdf3f9204 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 4 Jul 2025 10:50:55 +0800 Subject: [PATCH 04/24] modify:depend library direction name --- .github/workflows/Rocky_build.yml | 2 +- .github/workflows/debian_build.yml | 2 +- .github/workflows/fedora_build.yml | 2 +- .gitmodules | 2 +- .../MQCore_ConfigModule.vcxproj | 12 ++-- XEngine_Source/MQCore_ConfigModule/Makefile | 4 +- .../MQCore_ProtocolModule.vcxproj | 12 ++-- XEngine_Source/MQCore_ProtocolModule/Makefile | 4 +- XEngine_Source/Makefile | 6 +- .../{XEngine_Depend => XEngine_DependLibrary} | 0 XEngine_Source/XEngine_MQServiceApp.sln | 62 +++++++++---------- .../XEngine_MQServiceApp/MQService_Hdr.h | 8 +-- XEngine_Source/XEngine_MQServiceApp/Makefile | 2 +- 13 files changed, 59 insertions(+), 59 deletions(-) rename XEngine_Source/{XEngine_Depend => XEngine_DependLibrary} (100%) diff --git a/.github/workflows/Rocky_build.yml b/.github/workflows/Rocky_build.yml index d3350e7..d1fcb24 100644 --- a/.github/workflows/Rocky_build.yml +++ b/.github/workflows/Rocky_build.yml @@ -46,7 +46,7 @@ jobs: uses: actions/checkout@v4 with: repository: libxengine/XEngine_OPenSource - path: XEngine_Source/XEngine_Depend + path: XEngine_Source/XEngine_DependLibrary - name: Set TERM variable run: echo "TERM=xterm" >> $GITHUB_ENV diff --git a/.github/workflows/debian_build.yml b/.github/workflows/debian_build.yml index 1781146..3b48baa 100644 --- a/.github/workflows/debian_build.yml +++ b/.github/workflows/debian_build.yml @@ -40,7 +40,7 @@ jobs: uses: actions/checkout@v4 with: repository: libxengine/XEngine_OPenSource - path: XEngine_Source/XEngine_Depend + path: XEngine_Source/XEngine_DependLibrary - name: Set TERM variable run: echo "TERM=xterm" >> $GITHUB_ENV diff --git a/.github/workflows/fedora_build.yml b/.github/workflows/fedora_build.yml index 93dfc85..2c2f61c 100644 --- a/.github/workflows/fedora_build.yml +++ b/.github/workflows/fedora_build.yml @@ -46,7 +46,7 @@ jobs: uses: actions/checkout@v4 with: repository: libxengine/XEngine_OPenSource - path: XEngine_Source/XEngine_Depend + path: XEngine_Source/XEngine_DependLibrary - name: install system package run: | diff --git a/.gitmodules b/.gitmodules index 1cc1974..3949a92 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "XEngine_Source/XEngine_Depend"] - path = XEngine_Source/XEngine_Depend + path = XEngine_Source/XEngine_DependLibrary url = https://github.com/libxengine/XEngine_OPenSource.git diff --git a/XEngine_Source/MQCore_ConfigModule/MQCore_ConfigModule.vcxproj b/XEngine_Source/MQCore_ConfigModule/MQCore_ConfigModule.vcxproj index 40c57e1..6bc93e2 100644 --- a/XEngine_Source/MQCore_ConfigModule/MQCore_ConfigModule.vcxproj +++ b/XEngine_Source/MQCore_ConfigModule/MQCore_ConfigModule.vcxproj @@ -99,29 +99,29 @@ true - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;..\MQCore_ConfigModule;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;..\MQCore_ConfigModule;$(IncludePath) $(XEngine_Library);$(LibraryPath) false - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Library);$(LibraryPath) true - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) true - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) false - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) false - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) diff --git a/XEngine_Source/MQCore_ConfigModule/Makefile b/XEngine_Source/MQCore_ConfigModule/Makefile index 62da2d6..e7db6c5 100644 --- a/XEngine_Source/MQCore_ConfigModule/Makefile +++ b/XEngine_Source/MQCore_ConfigModule/Makefile @@ -2,8 +2,8 @@ CC = g++ -Wall -std=c++20 -fPIC PLATVER = FILEEXT = LIBFLAG = -LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp -LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp +LOADHDR = -I ./ -I ../XEngine_DependLibrary/XEngine_Module/jsoncpp +LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp LIB = -ljsoncpp LIBEX = OBJECTS = Config_Json.o pch.o diff --git a/XEngine_Source/MQCore_ProtocolModule/MQCore_ProtocolModule.vcxproj b/XEngine_Source/MQCore_ProtocolModule/MQCore_ProtocolModule.vcxproj index da45755..39d5e37 100644 --- a/XEngine_Source/MQCore_ProtocolModule/MQCore_ProtocolModule.vcxproj +++ b/XEngine_Source/MQCore_ProtocolModule/MQCore_ProtocolModule.vcxproj @@ -99,32 +99,32 @@ true - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;..\MQCore_ProtocolModule;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;..\MQCore_ProtocolModule;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) false - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) true - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) true - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_LibArm64);$(LibraryPath) false - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) false - $(XEngine_Include);../XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_LibArm64);$(LibraryPath) diff --git a/XEngine_Source/MQCore_ProtocolModule/Makefile b/XEngine_Source/MQCore_ProtocolModule/Makefile index e7ffeba..9b852fd 100644 --- a/XEngine_Source/MQCore_ProtocolModule/Makefile +++ b/XEngine_Source/MQCore_ProtocolModule/Makefile @@ -2,8 +2,8 @@ CC = g++ -Wall -std=c++20 -fPIC PLATVER = FILEEXT = LIBFLAG = -LOADHDR = -I ./ -I ../XEngine_Depend/XEngine_Module/jsoncpp -LOADSO = -L ../XEngine_Depend/XEngine_Module/jsoncpp +LOADHDR = -I ./ -I ../XEngine_DependLibrary/XEngine_Module/jsoncpp +LOADSO = -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp LIB = -ljsoncpp -lXEngine_BaseLib -lXEngine_Cryption -lRfcComponents_MQTTProtocol LIBEX = OBJECTS = ProtocolModule_Packet.o ProtocolModule_Parse.o pch.o diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile index 653611d..f778d99 100644 --- a/XEngine_Source/Makefile +++ b/XEngine_Source/Makefile @@ -3,9 +3,9 @@ UNICODE = 0 PLATFORM=linux FLAGS= #要编译的模块 -BASE_THIRDPART_JSONCPP = ./XEngine_Depend/XEngine_Module/jsoncpp -BASE_THIRDPART_REPORT = ./XEngine_Depend/XEngine_Module/XEngine_InfoReport -BASE_THIRDPART_TOKEN = ./XEngine_Depend/XEngine_Module/XEngine_Token +BASE_THIRDPART_JSONCPP = ./XEngine_DependLibrary/XEngine_Module/jsoncpp +BASE_THIRDPART_REPORT = ./XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport +BASE_THIRDPART_TOKEN = ./XEngine_DependLibrary/XEngine_Module/XEngine_Token BASE_CONFIG_PATH = ./MQCore_ConfigModule BASE_PROTOCOL_PATH = ./MQCore_ProtocolModule diff --git a/XEngine_Source/XEngine_Depend b/XEngine_Source/XEngine_DependLibrary similarity index 100% rename from XEngine_Source/XEngine_Depend rename to XEngine_Source/XEngine_DependLibrary diff --git a/XEngine_Source/XEngine_MQServiceApp.sln b/XEngine_Source/XEngine_MQServiceApp.sln index 389dc75..e6af108 100644 --- a/XEngine_Source/XEngine_MQServiceApp.sln +++ b/XEngine_Source/XEngine_MQServiceApp.sln @@ -40,18 +40,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_DBModule", "MQCore_D EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XEngine_Depend", "XEngine_Depend", "{BAC91AAE-D438-4999-9541-EB8804B12F0C}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsoncpp", "XEngine_Depend\XEngine_Module\jsoncpp\jsoncpp.vcxproj", "{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_MemoryCache", "MQCore_MemoryCache\MQCore_MemoryCache.vcxproj", "{8C55D3E0-FEC2-4A6C-A374-651516ED8F99}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_HelpModule", "MQCore_HelpModule\MQCore_HelpModule.vcxproj", "{4B061F8B-A783-45EA-A8D1-78F9668C49D2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsoncpp", "XEngine_DependLibrary\XEngine_Module\jsoncpp\jsoncpp.vcxproj", "{F1736B3F-03A2-4FC7-B045-A12BA8D724FB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngine_Depend\XEngine_Module\XEngine_InfoReport\XEngine_InfoReport.vcxproj", "{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngine_DependLibrary\XEngine_Module\XEngine_InfoReport\XEngine_InfoReport.vcxproj", "{F6520D2C-BB8E-45BB-964B-F5D6A4318A89}" ProjectSection(ProjectDependencies) = postProject {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_MemoryCache", "MQCore_MemoryCache\MQCore_MemoryCache.vcxproj", "{8C55D3E0-FEC2-4A6C-A374-651516ED8F99}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_HelpModule", "MQCore_HelpModule\MQCore_HelpModule.vcxproj", "{4B061F8B-A783-45EA-A8D1-78F9668C49D2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_Depend\XEngine_Module\XEngine_Token\XEngine_Token.vcxproj", "{E17E889F-D826-413F-854E-DBA6000B4DA7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_DependLibrary\XEngine_Module\XEngine_Token\XEngine_Token.vcxproj", "{E17E889F-D826-413F-854E-DBA6000B4DA7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -123,30 +123,6 @@ Global {5475F316-F9E9-4FF5-95ED-F7C9474709A3}.Release|x64.Build.0 = Release|x64 {5475F316-F9E9-4FF5-95ED-F7C9474709A3}.Release|x86.ActiveCfg = Release|Win32 {5475F316-F9E9-4FF5-95ED-F7C9474709A3}.Release|x86.Build.0 = Release|Win32 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|ARM64.Build.0 = Debug|ARM64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x64.ActiveCfg = Debug|x64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x64.Build.0 = Debug|x64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x86.ActiveCfg = Debug|Win32 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x86.Build.0 = Debug|Win32 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|ARM64.ActiveCfg = Release|ARM64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|ARM64.Build.0 = Release|ARM64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x64.ActiveCfg = Release|x64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x64.Build.0 = Release|x64 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x86.ActiveCfg = Release|Win32 - {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x86.Build.0 = Release|Win32 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|ARM64.Build.0 = Debug|ARM64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x64.ActiveCfg = Debug|x64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x64.Build.0 = Debug|x64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x86.ActiveCfg = Debug|Win32 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x86.Build.0 = Debug|Win32 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|ARM64.ActiveCfg = Release|ARM64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|ARM64.Build.0 = Release|ARM64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x64.ActiveCfg = Release|x64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x64.Build.0 = Release|x64 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x86.ActiveCfg = Release|Win32 - {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x86.Build.0 = Release|Win32 {8C55D3E0-FEC2-4A6C-A374-651516ED8F99}.Debug|ARM64.ActiveCfg = Debug|ARM64 {8C55D3E0-FEC2-4A6C-A374-651516ED8F99}.Debug|ARM64.Build.0 = Debug|ARM64 {8C55D3E0-FEC2-4A6C-A374-651516ED8F99}.Debug|x64.ActiveCfg = Debug|x64 @@ -171,6 +147,30 @@ Global {4B061F8B-A783-45EA-A8D1-78F9668C49D2}.Release|x64.Build.0 = Release|x64 {4B061F8B-A783-45EA-A8D1-78F9668C49D2}.Release|x86.ActiveCfg = Release|Win32 {4B061F8B-A783-45EA-A8D1-78F9668C49D2}.Release|x86.Build.0 = Release|Win32 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|ARM64.Build.0 = Debug|ARM64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x64.ActiveCfg = Debug|x64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x64.Build.0 = Debug|x64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x86.ActiveCfg = Debug|Win32 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Debug|x86.Build.0 = Debug|Win32 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|ARM64.ActiveCfg = Release|ARM64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|ARM64.Build.0 = Release|ARM64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x64.ActiveCfg = Release|x64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x64.Build.0 = Release|x64 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x86.ActiveCfg = Release|Win32 + {F1736B3F-03A2-4FC7-B045-A12BA8D724FB}.Release|x86.Build.0 = Release|Win32 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|ARM64.Build.0 = Debug|ARM64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x64.ActiveCfg = Debug|x64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x64.Build.0 = Debug|x64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x86.ActiveCfg = Debug|Win32 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Debug|x86.Build.0 = Debug|Win32 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|ARM64.ActiveCfg = Release|ARM64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|ARM64.Build.0 = Release|ARM64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x64.ActiveCfg = Release|x64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x64.Build.0 = Release|x64 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x86.ActiveCfg = Release|Win32 + {F6520D2C-BB8E-45BB-964B-F5D6A4318A89}.Release|x86.Build.0 = Release|Win32 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Debug|ARM64.ActiveCfg = Debug|ARM64 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Debug|ARM64.Build.0 = Debug|ARM64 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h index f9f2269..ac8646b 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h @@ -43,10 +43,10 @@ using namespace std; #include #include #include -#include "../XEngine_Depend/XEngine_Module/XEngine_InfoReport/InfoReport_Define.h" -#include "../XEngine_Depend/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h" -#include "../XEngine_Depend/XEngine_Module/XEngine_Token/Session_Define.h" -#include "../XEngine_Depend/XEngine_Module/XEngine_Token/Session_Error.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Define.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_Token/Session_Define.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_Token/Session_Error.h" #include "../XQueue_ProtocolHdr.h" #include "../MQCore_ConfigModule/Config_Define.h" #include "../MQCore_ConfigModule/Config_Error.h" diff --git a/XEngine_Source/XEngine_MQServiceApp/Makefile b/XEngine_Source/XEngine_MQServiceApp/Makefile index 67f1521..23efa8c 100644 --- a/XEngine_Source/XEngine_MQServiceApp/Makefile +++ b/XEngine_Source/XEngine_MQServiceApp/Makefile @@ -2,7 +2,7 @@ CC = g++ -Wall -std=c++20 PLATVER = LOADHDR = -I ./ LOADSO = -L ../MQCore_ConfigModule -L ../MQCore_ProtocolModule -L ../MQCore_SessionModule -L ../MQCore_MemoryCache -L ../MQCore_DBModule -L ../MQCore_HelpModule \ - -L ../XEngine_Depend/XEngine_Module/jsoncpp -L ../XEngine_Depend/XEngine_Module/XEngine_InfoReport -L ../XEngine_Depend/XEngine_Module/XEngine_Token + -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Token LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXClient_APIHelp -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_WSProtocol -lRfcComponents_HttpProtocol -lRfcComponents_MQTTProtocol \ -lMQCore_ConfigModule -lMQCore_ProtocolModule -lMQCore_SessionModule -lMQCore_MemoryCache -lMQCore_DBModule -lMQCore_HelpModule \ -ljsoncpp -lXEngine_InfoReport -lXEngine_Token From 8fffbf4c401635c5bd89a68b2b4a182961aee271 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 4 Jul 2025 10:52:17 +0800 Subject: [PATCH 05/24] update:depend library --- XEngine_Source/XEngine_DependLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index 66e6bf3..91c4b0c 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit 66e6bf39df14cd66d4bcbbb44a3e168ff75fed99 +Subproject commit 91c4b0cdf0d45775e0575f04ae9e13491bd3934a From b63cc3d9f0f90886d4e29e5ff03ae43d1f5bed17 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 4 Jul 2025 10:52:28 +0800 Subject: [PATCH 06/24] update:vs bat file --- XEngine_Source/VSClean.bat | 1 + XEngine_Source/VSCopy_Arm64.bat | 1 + XEngine_Source/VSCopy_Debug.bat | 1 + XEngine_Source/VSCopy_x64.bat | 1 + XEngine_Source/VSCopy_x86.bat | 1 + 5 files changed, 5 insertions(+) diff --git a/XEngine_Source/VSClean.bat b/XEngine_Source/VSClean.bat index bf8eca3..1ca651d 100644 --- a/XEngine_Source/VSClean.bat +++ b/XEngine_Source/VSClean.bat @@ -5,6 +5,7 @@ FOR /R . %%d IN (.) DO rd /s /q "%%d\Release" 2>nul FOR /R . %%d IN (.) DO rd /s /q "%%d\x64" 2>nul FOR /R . %%d IN (.) DO rd /s /q "%%d\Debug" 2>nul FOR /R . %%d IN (.) DO rd /s /q "%%d\ipch" 2>nul +FOR /R . %%d IN (.) DO rd /s /q "%%d\ARM64" 2>nul rem If the Properties directory is empty, remove it FOR /R . %%d in (.) do rd /q "%%d\Properties" 2> nul diff --git a/XEngine_Source/VSCopy_Arm64.bat b/XEngine_Source/VSCopy_Arm64.bat index 2d90d25..4c93702 100644 --- a/XEngine_Source/VSCopy_Arm64.bat +++ b/XEngine_Source/VSCopy_Arm64.bat @@ -10,6 +10,7 @@ copy /y "%XEngine_LibArm64%\XEngine_SystemSdk\XEngine_SystemConfig.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_Client\XClient_APIHelp.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" +copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/VSCopy_Debug.bat b/XEngine_Source/VSCopy_Debug.bat index 04cfcec..f74e47a 100644 --- a/XEngine_Source/VSCopy_Debug.bat +++ b/XEngine_Source/VSCopy_Debug.bat @@ -10,6 +10,7 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\XEngine_SystemConfig.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_APIHelp.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIHelp.dll" "./" +copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_XSocket.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Packets.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat index 6091a6f..9497c4a 100644 --- a/XEngine_Source/VSCopy_x64.bat +++ b/XEngine_Source/VSCopy_x64.bat @@ -10,6 +10,7 @@ copy /y "%XEngine_Lib64%\XEngine_SystemSdk\XEngine_SystemConfig.dll" "./" copy /y "%XEngine_Lib64%\XEngine_Client\XClient_APIHelp.dll" "./" copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat index ddd01a1..3cffff0 100644 --- a/XEngine_Source/VSCopy_x86.bat +++ b/XEngine_Source/VSCopy_x86.bat @@ -10,6 +10,7 @@ copy /y "%XEngine_Lib32%\XEngine_SystemSdk\XEngine_SystemConfig.dll" "./" copy /y "%XEngine_Lib32%\XEngine_Client\XClient_APIHelp.dll" "./" copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" From 502cbbb0936968433c989735787e6b1e66ba7013 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 7 Jul 2025 17:48:42 +0800 Subject: [PATCH 07/24] modify:start parameter are not case sensitive --- .../XEngine_MQServiceApp/MQService_Config.cpp | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp index 34cf122..7c63d2a 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp @@ -18,47 +18,59 @@ bool MQ_Service_Parament(int argc, char** argv, XENGINE_SERVERCONFIG* pSt_Startl for (int i = 0;i < argc;i++) { - if ((0 == _tcsxcmp("-h",argv[i])) || (0 == _tcsxcmp("-H",argv[i]))) + if (0 == _tcsxicmp("-h",argv[i])) { MQ_Service_ParamentHelp(); return false; } - else if ((0 == _tcsxcmp("-v",argv[i])) || (0 == _tcsxcmp("-V",argv[i]))) + else if (0 == _tcsxicmp("-v",argv[i])) { printf("Version:V1.1.0\n"); return false; } - else if (0 == _tcsxcmp("-TP",argv[i])) + else if (0 == _tcsxicmp("-tp",argv[i])) { pSt_StartlParam->nTCPPort = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-HP",argv[i])) + else if (0 == _tcsxicmp("-hp",argv[i])) { pSt_StartlParam->nHttpPort = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-WP", argv[i])) + else if (0 == _tcsxicmp("-wp", argv[i])) { pSt_StartlParam->nWSPort = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-MP", argv[i])) + else if (0 == _tcsxicmp("-mp", argv[i])) { pSt_StartlParam->nMQTTPort = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-LL", argv[i])) + else if (0 == _tcsxicmp("-d",argv[i])) + { + pSt_StartlParam->bDeamon = _ttxoi(argv[++i]); + } + else if (0 == _tcsxicmp("-t", argv[i])) { - pSt_StartlParam->st_XLog.nLogLeave = _ttxoi(argv[++i]); + bIsTest = true; } - else if (0 == _tcsxcmp("-LT", argv[i])) + else if (0 == _tcsxicmp("-lt", argv[i])) { pSt_StartlParam->st_XLog.nLogType = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-d",argv[i])) - { - pSt_StartlParam->bDeamon = _ttxoi(argv[++i]); - } - else if (0 == _tcsxcmp("-t", argv[i])) + else if (0 == _tcsxcmp("-l", argv[i])) { - bIsTest = true; + LPCXSTR lpszLogLevel = argv[++i]; + if (0 == _tcsxcmp("debug", lpszLogLevel)) + { + pSt_StartlParam->st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL; + } + else if (0 == _tcsxcmp("detail", lpszLogLevel)) + { + pSt_StartlParam->st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL; + } + else if (0 == _tcsxcmp("info", lpszLogLevel)) + { + pSt_StartlParam->st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO; + } } } From 2552ef94d6c9e0e90a4da77315809eb0c0ccdfbc Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 7 Jul 2025 17:49:02 +0800 Subject: [PATCH 08/24] ci:add rocky linux 10 support --- .github/workflows/Rocky_build.yml | 22 +++++++++++++++++----- README.md | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/Rocky_build.yml b/.github/workflows/Rocky_build.yml index d1fcb24..c78dfb6 100644 --- a/.github/workflows/Rocky_build.yml +++ b/.github/workflows/Rocky_build.yml @@ -16,7 +16,7 @@ jobs: build: runs-on: ${{ matrix.runner }} container: - image: rockylinux/rockylinux:9.5 + image: rockylinux/rockylinux:${{ matrix.version }} options: --platform ${{ matrix.platform }} strategy: matrix: @@ -25,10 +25,22 @@ jobs: runner: ubuntu-24.04 platform: linux/amd64 artifact: x86-64 + version: 9 + - arch: amd64 + runner: ubuntu-24.04 + platform: linux/amd64 + artifact: x86-64 + version: 10 + - arch: arm64 + runner: ubuntu-24.04-arm + platform: linux/arm64 + artifact: Arm64 + version: 9 - arch: arm64 runner: ubuntu-24.04-arm platform: linux/arm64 artifact: Arm64 + version: 10 steps: - name: Checkout main repository code @@ -59,9 +71,9 @@ jobs: - name: install xengine library run: | latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name) - wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_RockyLinux_9_${{ matrix.artifact }}.zip - unzip ./XEngine_RockyLinux_9_${{ matrix.artifact }}.zip -d ./XEngine_RockyLinux_9_${{ matrix.artifact }} - cd XEngine_RockyLinux_9_${{ matrix.artifact }} + wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}.zip + unzip ./XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }}.zip -d ./XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }} + cd XEngine_RockyLinux_${{ matrix.version }}_${{ matrix.artifact }} chmod 777 * ./XEngine_LINEnv.sh -i 3 @@ -85,6 +97,6 @@ jobs: - name: Upload folder as artifact with RockyLinux uses: actions/upload-artifact@v4 with: - name: XEngine_MQServiceApp-RockyLinux_9_${{ matrix.artifact }} + name: XEngine_MQServiceApp-RockyLinux_${{ matrix.version }}_${{ matrix.artifact }} path: XEngine_Release/ retention-days: 1 diff --git a/README.md b/README.md index 87fdfd5..bda934f 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ macos执行:./XEngine_LINEnv.sh -i 3 由于依赖的子模块,在你checkout仓库后,在仓库目录下执行下面的命令拉取子模块 git submodule init git submodule update -如果github访问失败,你也可以clone该项目,在主目录下使用命令:git clone https://gitee.com/xengine/XEngine_OPenSource.git XEngine_Source/XEngine_Depend +如果github访问失败,你也可以clone该项目,在主目录下使用命令:git clone https://gitee.com/xengine/XEngine_OPenSource.git XEngine_Source/XEngine_DependLibrary #### Windows 使用VS打开并且编译,支持WINDOWS 7SP1以上系统 From 91d6c8c9c07cecd33b0791f9817d77bfec0d60e3 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 10 Jul 2025 14:45:56 +0800 Subject: [PATCH 09/24] update:read me and depend library --- README.en.md | 2 +- XEngine_Source/XEngine_DependLibrary | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.en.md b/README.en.md index ba1f938..57a9275 100644 --- a/README.en.md +++ b/README.en.md @@ -54,7 +54,7 @@ Requires MYSQL service support, execute XEngine_SQLFile/CreateDatabase.sql to cr Execute XEngine_SQLFile/XEngine_MQData.sql and XEngine_SQLFile/XEngine_MQUser.sql to create the table #### sub module -Due to the dependent sub-modules, after you checkout the warehouse, execute the following command in the warehouse directory to pull the sub-modules +Due to the dependent sub-modules, after you checkout the resprepository, execute the following command in the resprepository directory to pull the sub-modules git submodule init git submodule update diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index 91c4b0c..86484a3 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit 91c4b0cdf0d45775e0575f04ae9e13491bd3934a +Subproject commit 86484a382f53da2999d9c063776b4850baf7a850 From b3f50895365124e3d749dea0df9795e2c03bb5dc Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 22 Aug 2025 10:22:47 +0800 Subject: [PATCH 10/24] update:depend library --- XEngine_Source/XEngine_DependLibrary | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_DependLibrary b/XEngine_Source/XEngine_DependLibrary index 86484a3..6a2fd03 160000 --- a/XEngine_Source/XEngine_DependLibrary +++ b/XEngine_Source/XEngine_DependLibrary @@ -1 +1 @@ -Subproject commit 86484a382f53da2999d9c063776b4850baf7a850 +Subproject commit 6a2fd030257062f98b2a2751e9d5b6559901a53e From d9feb48b8ac373b5ce8842449cef10698c7f1c08 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 22 Aug 2025 10:23:46 +0800 Subject: [PATCH 11/24] modify:start parameter are not case sensitive --- XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp index 7c63d2a..ad4fcf7 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp @@ -56,18 +56,18 @@ bool MQ_Service_Parament(int argc, char** argv, XENGINE_SERVERCONFIG* pSt_Startl { pSt_StartlParam->st_XLog.nLogType = _ttxoi(argv[++i]); } - else if (0 == _tcsxcmp("-l", argv[i])) + else if (0 == _tcsxicmp("-l", argv[i])) { LPCXSTR lpszLogLevel = argv[++i]; - if (0 == _tcsxcmp("debug", lpszLogLevel)) + if (0 == _tcsxicmp("debug", lpszLogLevel)) { pSt_StartlParam->st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL; } - else if (0 == _tcsxcmp("detail", lpszLogLevel)) + else if (0 == _tcsxicmp("detail", lpszLogLevel)) { pSt_StartlParam->st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DETAIL; } - else if (0 == _tcsxcmp("info", lpszLogLevel)) + else if (0 == _tcsxicmp("info", lpszLogLevel)) { pSt_StartlParam->st_XLog.nLogLeave = XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO; } From 9cb8e0925012dd2876bb10b1d0a58cd6d1e3a38f Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 22 Aug 2025 10:29:08 +0800 Subject: [PATCH 12/24] fixed:build failure --- XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h index ac8646b..bbb6e75 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h @@ -43,6 +43,8 @@ using namespace std; #include #include #include +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_Verification/Verification_Define.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_Verification/Verification_Error.h" #include "../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Define.h" #include "../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h" #include "../XEngine_DependLibrary/XEngine_Module/XEngine_Token/Session_Define.h" From 4ac2044322366c7f9a45d29698ede29303941d82 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Tue, 26 Aug 2025 14:03:06 +0800 Subject: [PATCH 13/24] fixed:version print failure when set -v parameter --- XEngine_Source/XEngine_MQServiceApp.sln | 16 ++++++++++++++++ .../XEngine_MQServiceApp/MQService_Config.cpp | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/XEngine_Source/XEngine_MQServiceApp.sln b/XEngine_Source/XEngine_MQServiceApp.sln index e6af108..883c6a7 100644 --- a/XEngine_Source/XEngine_MQServiceApp.sln +++ b/XEngine_Source/XEngine_MQServiceApp.sln @@ -10,6 +10,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MQServiceApp", "XEn {5475F316-F9E9-4FF5-95ED-F7C9474709A3} = {5475F316-F9E9-4FF5-95ED-F7C9474709A3} {77321E0D-15DB-4C6E-8872-115CBBE41F27} = {77321E0D-15DB-4C6E-8872-115CBBE41F27} {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} = {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} {B0EB2A7A-53C1-4E9F-A851-19539099671C} = {B0EB2A7A-53C1-4E9F-A851-19539099671C} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {E17E889F-D826-413F-854E-DBA6000B4DA7} {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} @@ -53,6 +54,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngi EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_DependLibrary\XEngine_Module\XEngine_Token\XEngine_Token.vcxproj", "{E17E889F-D826-413F-854E-DBA6000B4DA7}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_DependLibrary\XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -183,6 +186,18 @@ Global {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x64.Build.0 = Release|x64 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.ActiveCfg = Release|Win32 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.Build.0 = Release|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.Build.0 = Debug|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.ActiveCfg = Debug|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.Build.0 = Debug|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.ActiveCfg = Debug|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.Build.0 = Debug|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.ActiveCfg = Release|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.Build.0 = Release|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.ActiveCfg = Release|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.Build.0 = Release|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.ActiveCfg = Release|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -191,6 +206,7 @@ Global {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EFADBBBD-43B1-4B9B-9DD8-04415EBEFDA7} diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp index ad4fcf7..ea5be9d 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Config.cpp @@ -25,7 +25,7 @@ bool MQ_Service_Parament(int argc, char** argv, XENGINE_SERVERCONFIG* pSt_Startl } else if (0 == _tcsxicmp("-v",argv[i])) { - printf("Version:V1.1.0\n"); + printf("Version:%s\n", st_ServiceCfg.st_XVer.pStl_ListStorage->front().c_str()); return false; } else if (0 == _tcsxicmp("-tp",argv[i])) From 7ecfaa65f1f1473f1537288162e5f21f304ce174 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 10:59:16 +0800 Subject: [PATCH 14/24] added:http basic and digest verification support delete:register authorize --- .../XEngine_Config/XEngine_Config.json | 6 +- .../MQCore_ConfigModule/Config_Define.h | 6 +- .../Config_Json/Config_Json.cpp | 8 +- XEngine_Source/Makefile | 9 +- .../MQService_HTTPTask/MQService_HTTPPost.cpp | 15 ---- .../XEngine_MQServiceApp/MQService_Hdr.h | 18 ++-- .../MQService_HttpTask.cpp | 89 +++++++++++++++++++ XEngine_Source/XEngine_MQServiceApp/Makefile | 4 +- 8 files changed, 124 insertions(+), 31 deletions(-) diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index 2e64c81..b7b6612 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -42,8 +42,10 @@ "nTimeLast":3600, "nTimeCount":0 }, - "XAuthorize":{ - "bHTTPAuth":true + "XVerification":{ + "bEnable": false, + "nVType": 1, + "tszAuthPass": "http://192.168.1.7:5200/Api/Pass/UPFile" }, "XReport":{ "bEnable":true, diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Define.h b/XEngine_Source/MQCore_ConfigModule/Config_Define.h index 93234fb..9d1570a 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Define.h +++ b/XEngine_Source/MQCore_ConfigModule/Config_Define.h @@ -66,8 +66,10 @@ typedef struct }st_XMemory; struct { - bool bHTTPAuth; - }st_XAuthorize; + bool bEnable; + int nVType; + XCHAR tszAuthPass[XPATH_MID]; + }st_XVerification; struct { bool bEnable; diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp b/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp index 39f2bb5..40ffdad 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp +++ b/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp @@ -128,14 +128,16 @@ bool CConfig_Json::Config_Json_File(LPCXSTR lpszConfigFile,XENGINE_SERVERCONFIG pSt_ServerConfig->st_XMemory.nTimeLast = st_JsonXMemory["nTimeLast"].asInt(); pSt_ServerConfig->st_XMemory.nTimeCount = st_JsonXMemory["nTimeCount"].asInt(); - if (st_JsonRoot["XAuthorize"].empty() || (1 != st_JsonRoot["XAuthorize"].size())) + if (st_JsonRoot["XVerification"].empty() || (3 != st_JsonRoot["XVerification"].size())) { Config_IsErrorOccur = true; Config_dwErrorCode = ERROR_MQ_MODULE_CONFIG_JSON_XAUTHORIZE; return false; } - Json::Value st_JsonXAuthorize = st_JsonRoot["XAuthorize"]; - pSt_ServerConfig->st_XAuthorize.bHTTPAuth = st_JsonXAuthorize["bHTTPAuth"].asBool(); + Json::Value st_JsonXVerification = st_JsonRoot["XVerification"]; + pSt_ServerConfig->st_XVerification.bEnable = st_JsonXVerification["bEnable"].asBool(); + pSt_ServerConfig->st_XVerification.nVType = st_JsonXVerification["nVType"].asInt(); + _tcsxcpy(pSt_ServerConfig->st_XVerification.tszAuthPass, st_JsonXVerification["tszAuthPass"].asCString()); if (st_JsonRoot["XReport"].empty() || (3 != st_JsonRoot["XReport"].size())) { diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile index f778d99..f8e3e9a 100644 --- a/XEngine_Source/Makefile +++ b/XEngine_Source/Makefile @@ -6,6 +6,7 @@ FLAGS= BASE_THIRDPART_JSONCPP = ./XEngine_DependLibrary/XEngine_Module/jsoncpp BASE_THIRDPART_REPORT = ./XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport BASE_THIRDPART_TOKEN = ./XEngine_DependLibrary/XEngine_Module/XEngine_Token +BASE_THIRDPART_VERIFICATION = ./XEngine_DependLibrary/XEngine_Module/XEngine_Verification BASE_CONFIG_PATH = ./MQCore_ConfigModule BASE_PROTOCOL_PATH = ./MQCore_ProtocolModule @@ -22,7 +23,7 @@ else ifeq ($(PLATFORM),mac) FILEEXT = dylib endif -XENGINE_MODULES = libjsoncpp.so libXEngine_InfoReport.so libXEngine_Token.so \ +XENGINE_MODULES = libjsoncpp.so libXEngine_InfoReport.so libXEngine_Token.so libXEngine_Verification.so \ libMQCore_ConfigModule.so libMQCore_ProtocolModule.so libMQCore_SessionModule.so libMQCore_MemoryCache.so libMQCore_DBModule.so libMQCore_HelpModule.so \ XEngine_MQServiceApp.exe @@ -48,6 +49,12 @@ ifeq ($(FLAGS), InstallAll) else make -C $(BASE_THIRDPART_TOKEN) PLATFORM=$(PLATFORM) $(FLAGS) endif +libXEngine_Verification.so: +ifeq ($(FLAGS), InstallAll) + cp $(BASE_THIRDPART_VERIFICATION)/libXEngine_Verification.$(FILEEXT) ../XEngine_Release/ +else + make -C $(BASE_THIRDPART_VERIFICATION) PLATFORM=$(PLATFORM) $(FLAGS) +endif libMQCore_ConfigModule.so: make -C $(BASE_CONFIG_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) RELEASE=$(RELEASE) $(FLAGS) diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp index c66baca..240bc34 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp @@ -25,21 +25,6 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP LPCXSTR lpszAPICreateTopic = _X("createtopic"); LPCXSTR lpszAPIDelTopic = _X("deletetopic"); LPCXSTR lpszAPIDelUser = _X("deleteuser"); - - //判断是否需要验证,不是注册协议 - if (st_ServiceCfg.st_XAuthorize.bHTTPAuth && (0 != _tcsxnicmp(lpszAPIRegister, lpszFuncName, _tcsxlen(lpszAPIRegister)))) - { - if (ProtocolModule_Parse_Token(lpszMsgBuffer, nMsgLen, &xhToken)) - { - if (!Session_Token_Get(xhToken)) - { - ProtocolModule_Packet_Http(tszSDBuffer, &nSDLen, ERROR_XENGINE_MESSAGE_HTTP_AUTHORIZE, "not authorize"); - XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP); - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求的API:%s 失败,因为没有经过验证"), lpszClientAddr, lpszFuncName); - return false; - } - } - } //判断请求 if (0 == _tcsxnicmp(lpszAPIRegister, lpszFuncName, _tcsxlen(lpszAPIRegister))) { diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h index bbb6e75..40d76b3 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h @@ -114,27 +114,30 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../x64/Debug/MQCore_SessionModule.lib") #pragma comment(lib,"../x64/Debug/MQCore_DBModule.lib") #pragma comment(lib,"../x64/Debug/MQCore_HelpModule.lib") +#pragma comment(lib,"../x64/Debug/MQCore_MemoryCache.lib") #pragma comment(lib,"../x64/Debug/XEngine_InfoReport.lib") #pragma comment(lib,"../x64/Debug/XEngine_Token.lib") -#pragma comment(lib,"../x64/Debug/MQCore_MemoryCache.lib") +#pragma comment(lib,"../x64/Debug/XEngine_Verification.lib") #elif _M_ARM64 #pragma comment(lib,"../ARM64/Debug/MQCore_ConfigModule.lib") #pragma comment(lib,"../ARM64/Debug/MQCore_ProtocolModule.lib") #pragma comment(lib,"../ARM64/Debug/MQCore_SessionModule.lib") #pragma comment(lib,"../ARM64/Debug/MQCore_DBModule.lib") #pragma comment(lib,"../ARM64/Debug/MQCore_HelpModule.lib") +#pragma comment(lib,"../ARM64/Debug/MQCore_MemoryCache.lib") #pragma comment(lib,"../ARM64/Debug/XEngine_InfoReport.lib") #pragma comment(lib,"../ARM64/Debug/XEngine_Token.lib") -#pragma comment(lib,"../ARM64/Debug/MQCore_MemoryCache.lib") +#pragma comment(lib,"../ARM64/Debug/XEngine_Verification.lib") #elif _M_IX86 #pragma comment(lib,"../Debug/MQCore_ConfigModule.lib") #pragma comment(lib,"../Debug/MQCore_ProtocolModule.lib") #pragma comment(lib,"../Debug/MQCore_SessionModule.lib") #pragma comment(lib,"../Debug/MQCore_DBModule.lib") #pragma comment(lib,"../Debug/MQCore_HelpModule.lib") +#pragma comment(lib,"../Debug/MQCore_MemoryCache.lib") #pragma comment(lib,"../Debug/XEngine_InfoReport.lib") #pragma comment(lib,"../Debug/XEngine_Token.lib") -#pragma comment(lib,"../Debug/MQCore_MemoryCache.lib") +#pragma comment(lib,"../Debug/XEngine_Verification.lib") #endif #else #ifdef _M_X64 @@ -143,27 +146,30 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../x64/Release/MQCore_SessionModule.lib") #pragma comment(lib,"../x64/Release/MQCore_DBModule.lib") #pragma comment(lib,"../x64/Release/MQCore_HelpModule.lib") +#pragma comment(lib,"../x64/Release/MQCore_MemoryCache.lib") #pragma comment(lib,"../x64/Release/XEngine_InfoReport.lib") #pragma comment(lib,"../x64/Release/XEngine_Token.lib") -#pragma comment(lib,"../x64/Release/MQCore_MemoryCache.lib") +#pragma comment(lib,"../x64/Release/XEngine_Verification.lib") #elif _M_ARM64 #pragma comment(lib,"../ARM64/Release/MQCore_ConfigModule.lib") #pragma comment(lib,"../ARM64/Release/MQCore_ProtocolModule.lib") #pragma comment(lib,"../ARM64/Release/MQCore_SessionModule.lib") #pragma comment(lib,"../ARM64/Release/MQCore_DBModule.lib") #pragma comment(lib,"../ARM64/Release/MQCore_HelpModule.lib") +#pragma comment(lib,"../ARM64/Release/MQCore_MemoryCache.lib") #pragma comment(lib,"../ARM64/Release/XEngine_InfoReport.lib") #pragma comment(lib,"../ARM64/Release/XEngine_Token.lib") -#pragma comment(lib,"../ARM64/Release/MQCore_MemoryCache.lib") +#pragma comment(lib,"../ARM64/Release/XEngine_Verification.lib") #elif _M_IX86 #pragma comment(lib,"../Release/MQCore_ConfigModule.lib") #pragma comment(lib,"../Release/MQCore_ProtocolModule.lib") #pragma comment(lib,"../Release/MQCore_SessionModule.lib") #pragma comment(lib,"../Release/MQCore_DBModule.lib") #pragma comment(lib,"../Release/MQCore_HelpModule.lib") +#pragma comment(lib,"../Release/MQCore_MemoryCache.lib") #pragma comment(lib,"../Release/XEngine_InfoReport.lib") #pragma comment(lib,"../Release/XEngine_Token.lib") -#pragma comment(lib,"../Release/MQCore_MemoryCache.lib") +#pragma comment(lib,"../Release/XEngine_Verification.lib") #endif #endif #endif \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp index 10e0ac6..2c444f7 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_HttpTask.cpp @@ -48,6 +48,95 @@ bool MessageQueue_Http_Handle(RFCCOMPONENTS_HTTP_REQPARAM* pSt_HTTPParam, LPCXST LPCXSTR lpszPostMethod = _X("POST"); LPCXSTR lpszGetMethod = _X("GET"); + if (st_ServiceCfg.st_XVerification.bEnable) + { + int nVType = 0; + RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {}; + + st_HDRParam.nHttpCode = 401; + st_HDRParam.bIsClose = true; + st_HDRParam.bAuth = true; + //打包验证信息 + int nHDRLen = 0; + XCHAR tszHDRBuffer[XPATH_MAX] = {}; + if (1 == st_ServiceCfg.st_XVerification.nVType) + { + Verification_HTTP_BasicServerPacket(tszHDRBuffer, &nHDRLen); + } + else + { + XCHAR tszNonceStr[64] = {}; + XCHAR tszOpaqueStr[64] = {}; + Verification_HTTP_DigestServerPacket(tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr); + } + //后去验证方法 + if (!Verification_HTTP_GetType(pptszListHdr, nHdrCount, &nVType)) + { + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszPKTBuffer, &nPKTLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, tszPKTBuffer, nPKTLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式:%d,错误:%lX"), lpszClientAddr, st_ServiceCfg.st_XVerification.nVType, Verification_GetLastError()); + return false; + } + //验证方式是否一致 + if (st_ServiceCfg.st_XVerification.nVType != nVType) + { + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszPKTBuffer, &nPKTLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, tszPKTBuffer, nPKTLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d"), lpszClientAddr, nVType, st_ServiceCfg.st_XVerification.nVType); + return false; + } + bool bRet = false; + int nHTTPCode = 0; + int nMSGLen = 0; + XCLIENT_APIHTTP st_APIHttp = {}; + + XCHAR* ptszMSGBuffer = NULL; + if (!APIClient_Http_Request(_X("GET"), st_ServiceCfg.st_XVerification.tszAuthPass, NULL, &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL, NULL, &st_APIHttp)) + { + st_HDRParam.nHttpCode = 500; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszPKTBuffer, &nPKTLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, tszPKTBuffer, nPKTLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX"), lpszClientAddr, st_ServiceCfg.st_XVerification.tszAuthPass, APIClient_GetLastError()); + return false; + } + if (200 != nHTTPCode) + { + st_HDRParam.nHttpCode = 500; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszPKTBuffer, &nPKTLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, tszPKTBuffer, nPKTLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d"), lpszClientAddr, st_ServiceCfg.st_XVerification.tszAuthPass, nHTTPCode); + return false; + } + XENGINE_PROTOCOL_USERINFO st_UserAuth = {}; + if (!ProtocolModule_Parse_Register(ptszMSGBuffer, nMsgLen, &st_UserAuth)) + { + st_HDRParam.nHttpCode = 500; + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszPKTBuffer, &nPKTLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, tszPKTBuffer, nPKTLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,返回内容:%s 错误,无法继续"), lpszClientAddr, ptszMSGBuffer); + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); + return false; + } + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer); + + if (1 == nVType) + { + bRet = Verification_HTTP_Basic(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pptszListHdr, nHdrCount); + } + else if (2 == nVType) + { + bRet = Verification_HTTP_Digest(st_UserAuth.tszUserName, st_UserAuth.tszUserPass, pSt_HTTPParam->tszHttpMethod, pptszListHdr, nHdrCount); + } + + if (!bRet) + { + HttpProtocol_Server_SendMsgEx(xhHTTPPacket, tszPKTBuffer, &nPKTLen, &st_HDRParam, NULL, 0, tszHDRBuffer); + NetCore_TCPXCore_SendEx(xhHTTPSocket, lpszClientAddr, tszPKTBuffer, nPKTLen); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d"), lpszClientAddr, nVType); + return false; + } + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,HTTP验证类型:%d 通过"), lpszClientAddr, nVType); + } int nUrlCount = 0; XCHAR** ppSt_ListUrl; HttpProtocol_ServerHelp_GetParament(pSt_HTTPParam->tszHttpUri, &ppSt_ListUrl, &nUrlCount); diff --git a/XEngine_Source/XEngine_MQServiceApp/Makefile b/XEngine_Source/XEngine_MQServiceApp/Makefile index 23efa8c..b8dca7c 100644 --- a/XEngine_Source/XEngine_MQServiceApp/Makefile +++ b/XEngine_Source/XEngine_MQServiceApp/Makefile @@ -2,10 +2,10 @@ CC = g++ -Wall -std=c++20 PLATVER = LOADHDR = -I ./ LOADSO = -L ../MQCore_ConfigModule -L ../MQCore_ProtocolModule -L ../MQCore_SessionModule -L ../MQCore_MemoryCache -L ../MQCore_DBModule -L ../MQCore_HelpModule \ - -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Token + -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Token -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Verification LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXClient_APIHelp -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_WSProtocol -lRfcComponents_HttpProtocol -lRfcComponents_MQTTProtocol \ -lMQCore_ConfigModule -lMQCore_ProtocolModule -lMQCore_SessionModule -lMQCore_MemoryCache -lMQCore_DBModule -lMQCore_HelpModule \ - -ljsoncpp -lXEngine_InfoReport -lXEngine_Token + -ljsoncpp -lXEngine_InfoReport -lXEngine_Token -lXEngine_Verification LIBEX = OBJECTS = MQService_Net.o MQService_Config.o MQService_TCPTask.o MQService_HttpTask.o MQService_WSTask.o MQService_Task.o MQService_MQTTTask.o MQService_HTTPPost.o MQService_HTTPGet.o XEngine_MQServiceApp.o From cc8fd6f54c4a32d54571c6eb1f25b6e122d6ec9c Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 13:44:55 +0800 Subject: [PATCH 15/24] improved:reply message protocol set --- XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp index 11165a1..8867bc4 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp @@ -312,6 +312,7 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC } else if (0 == st_MQProtocol.nPubTime) { + pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_MSGNOTIFY; //设置为0,不是定时发布,即时通知 if (1 == st_MQProtocol.st_MSGAttr.byAttrAll) { @@ -329,8 +330,6 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC int nClientType = 0; memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); - pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_MSGNOTIFY; - SessionModule_Client_GetType(pptszListAddr[i], &nClientType); ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); XEngine_MQXService_Send(pptszListAddr[i], tszSDBuffer, nSDLen, nClientType); @@ -339,8 +338,6 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC } else { - pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_MSGNOTIFY; - if (_tcsxlen(st_MQProtocol.tszMQUsr) > 0) { //如果发送指定用户被指定. From 7797ed3c0096c9527f5596d3fe1c9f5f577bbe8d Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 14:20:56 +0800 Subject: [PATCH 16/24] added:email notify support when set recv user --- .../MQCore_HTTPApp/MQCore_HTTPApp.vcxproj | 4 +- .../MQCore_HTTPApp.vcxproj.filters | 8 +- XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp | 53 +++++++++- .../MQCore_WSApp/MQCore_WSApp.vcxproj | 4 +- .../XEngine_Config/XEngine_Config.json | 100 ++++++++++-------- .../MQCore_ConfigModule/Config_Define.h | 15 +++ .../MQCore_ConfigModule/Config_Error.h | 3 +- .../Config_Json/Config_Json.cpp | 19 ++++ XEngine_Source/Makefile | 9 +- XEngine_Source/XEngine_MQServiceApp.sln | 16 +++ .../XEngine_MQServiceApp/MQService_Hdr.h | 8 ++ .../XEngine_MQServiceApp/MQService_Net.cpp | 38 ++++--- .../MQService_TCPTask.cpp | 23 ++-- XEngine_Source/XEngine_MQServiceApp/Makefile | 4 +- XEngine_Source/XQueue_ProtocolHdr.h | 6 +- 15 files changed, 228 insertions(+), 82 deletions(-) diff --git a/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj b/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj index 37db60e..91905eb 100644 --- a/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj +++ b/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj @@ -72,7 +72,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) @@ -80,7 +80,7 @@ true - $(XEngine_Include);$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj.filters b/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj.filters index 733e87a..a658faa 100644 --- a/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj.filters +++ b/XEngine_Apps/MQCore_HTTPApp/MQCore_HTTPApp.vcxproj.filters @@ -5,14 +5,14 @@ {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + diff --git a/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp b/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp index a6eaac5..79796a7 100644 --- a/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp +++ b/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp @@ -25,7 +25,7 @@ using namespace std; XSOCKET m_Socket; __int64x nLastNumber = 0; LPCXSTR lpszKey = _X("XEngine_CommKey"); //主题 -LPCXSTR lpszUser = _X("aaadddzxc"); +LPCXSTR lpszUser = _X("123123aa"); LPCXSTR lpszPass = _X("123123"); void MQ_Authorize() @@ -247,6 +247,56 @@ void MQ_Post(LPCXSTR lpszMsgBuffer, int nType = 0, int nPubTime = -1, bool bSelf memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(XENGINE_PROTOCOL_XMQ)); BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer); } +void MQ_PostEMail(LPCXSTR lpszMsgBuffer) +{ + int nLen = 0; + XENGINE_PROTOCOLHDR st_ProtocolHdr; + XENGINE_PROTOCOL_XMQ st_XMQProtocol; + XCHAR tszMsgBuffer[2048]; + + memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer)); + memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR)); + memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ)); + + st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER; + st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_XMQ; + st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQPOST; + st_ProtocolHdr.byIsReply = true; //获得处理返回结果 + st_ProtocolHdr.byVersion = ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_STRING; + st_ProtocolHdr.unPacketSize = sizeof(XENGINE_PROTOCOL_XMQ) + strlen(lpszMsgBuffer); + st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL; + + st_XMQProtocol.nSerial = 0; //序列号,0服务会自动处理 + st_XMQProtocol.nKeepTime = 0; + st_XMQProtocol.nPubTime = 0; + strcpy(st_XMQProtocol.tszMQKey, lpszKey); + strcpy(st_XMQProtocol.tszMQUsr, "486179@qq.com"); + + st_XMQProtocol.st_MSGAttr.byAttrEMail = 1; + + nLen = sizeof(XENGINE_PROTOCOLHDR) + st_ProtocolHdr.unPacketSize; + memcpy(tszMsgBuffer, &st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR)); + memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR), &st_XMQProtocol, sizeof(XENGINE_PROTOCOL_XMQ)); + memcpy(tszMsgBuffer + sizeof(XENGINE_PROTOCOLHDR) + sizeof(XENGINE_PROTOCOL_XMQ), lpszMsgBuffer, strlen(lpszMsgBuffer)); + + if (!XClient_TCPSelect_SendMsg(m_Socket, tszMsgBuffer, nLen)) + { + _xtprintf("发送投递失败!\n"); + return; + } + nLen = 2048; + XCHAR* ptszMsgBuffer; + memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR)); + + if (!XClient_TCPSelect_RecvPkt(m_Socket, &ptszMsgBuffer, &nLen, &st_ProtocolHdr)) + { + _xtprintf("接受数据失败!\n"); + return; + } + memset(&st_XMQProtocol, '\0', sizeof(XENGINE_PROTOCOL_XMQ)); + memcpy(&st_XMQProtocol, ptszMsgBuffer, sizeof(XENGINE_PROTOCOL_XMQ)); + BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer); +} void MQ_Get(int nType = 0) { int nLen = 0; @@ -529,6 +579,7 @@ int main(int argc, char** argv) _xtprintf("连接成功!\n"); MQ_Authorize(); + MQ_PostEMail("test for email"); MQ_GetUNRead(); MQ_Create(); MQ_Post(NULL, ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_BIN, -1, true); diff --git a/XEngine_Apps/MQCore_WSApp/MQCore_WSApp.vcxproj b/XEngine_Apps/MQCore_WSApp/MQCore_WSApp.vcxproj index 21d4d52..af1f394 100644 --- a/XEngine_Apps/MQCore_WSApp/MQCore_WSApp.vcxproj +++ b/XEngine_Apps/MQCore_WSApp/MQCore_WSApp.vcxproj @@ -72,7 +72,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib32);$(LibraryPath) @@ -80,7 +80,7 @@ true - $(XEngine_Include);../../XEngine_Source/XEngine_Depend/XEngine_Module/jsoncpp;$(IncludePath) + $(XEngine_Include);../../XEngine_Source/XEngine_DependLibrary/XEngine_Module/jsoncpp;$(IncludePath) $(XEngine_Lib64);$(LibraryPath) diff --git a/XEngine_Release/XEngine_Config/XEngine_Config.json b/XEngine_Release/XEngine_Config/XEngine_Config.json index b7b6612..d7e6a71 100644 --- a/XEngine_Release/XEngine_Config/XEngine_Config.json +++ b/XEngine_Release/XEngine_Config/XEngine_Config.json @@ -1,55 +1,67 @@ { - "tszIPAddr":"127.0.0.1", - "tszTopic":"XEngine_CommKey", - "bDeamon":0, - "nTCPPort":5200, - "nWSPort":5201, - "nHttpPort":5202, - "nMQTTPort":5203, - "XMax":{ - "nMaxClient":10000, - "nMaxQueue":10000, - "nIOThread":2, - "nTCPThread":2, - "nHttpThread":2, - "nWSThread":2, - "nMQTTThread":2 + "tszIPAddr": "127.0.0.1", + "tszTopic": "XEngine_CommKey", + "bDeamon": 0, + "nTCPPort": 5200, + "nWSPort": 5201, + "nHttpPort": 5202, + "nMQTTPort": 5203, + "XMax": { + "nMaxClient": 10000, + "nMaxQueue": 10000, + "nIOThread": 2, + "nTCPThread": 2, + "nHttpThread": 2, + "nWSThread": 2, + "nMQTTThread": 2 }, - "XLog":{ - "tszLOGFile":"./XEngine_Log/XEngine_MQServiceApp.Log", - "MaxSize":1024000, - "MaxCount":10, - "LogLeave":32, - "LogType":17 + "XLog": { + "tszLOGFile": "./XEngine_Log/XEngine_MQServiceApp.Log", + "MaxSize": 1024000, + "MaxCount": 10, + "LogLeave": 32, + "LogType": 17 }, - "XSql":{ - "SQLAddr":"10.0.4.150", - "SQLPort":3306, - "SQLUser":"root", - "SQLPass":"123123aa" + "XSql": { + "SQLAddr": "127.0.0.1", + "SQLPort": 3306, + "SQLUser": "root", + "SQLPass": "123123" }, - "XPass":{ - "nTimeout":2, - "tszPassRegister":"", - "tszPassUNReg":"", - "tszPassLogin":"", - "tszPassLogout":"" + "XPass": { + "nTimeout": 2, + "tszPassRegister": "", + "tszPassUNReg": "", + "tszPassLogin": "", + "tszPassLogout": "" }, - "XMemory":{ - "bDataQueryEnable":true, - "bDataInsertEnable":true, - "bUserQueryEnable":true, - "nTimeLast":3600, - "nTimeCount":0 + "XMemory": { + "bDataQueryEnable": true, + "bDataInsertEnable": true, + "bUserQueryEnable": true, + "nTimeLast": 3600, + "nTimeCount": 0 }, - "XVerification":{ + "XVerification": { "bEnable": false, "nVType": 1, - "tszAuthPass": "http://192.168.1.7:5200/Api/Pass/UPFile" + "tszAuthPass": "" }, - "XReport":{ - "bEnable":true, - "tszServiceName":"XEngine_MQService", - "tszAPIUrl":"http://app.xyry.org:5501/api?function=machine" + "XNotify": { + "EmailNotify": { + "bEnable": true, + "tszEMailSubject": "XEngine MessageQueue Notify", + "tszServiceAddr": "smtp://smtp.163.com", + "tszUser": "ggqytgodlove@163.com", + "tszPass": "1" + }, + "SMSNotify": { + "bEnable": false + } + }, + "XReport": { + "bEnable": true, + "tszServiceName": "XEngine_MQService", + "tszAPIUrl": "http://app.xyry.org:5501/api?function=machine" } } \ No newline at end of file diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Define.h b/XEngine_Source/MQCore_ConfigModule/Config_Define.h index 9d1570a..05ae453 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Define.h +++ b/XEngine_Source/MQCore_ConfigModule/Config_Define.h @@ -70,6 +70,21 @@ typedef struct int nVType; XCHAR tszAuthPass[XPATH_MID]; }st_XVerification; + struct + { + struct + { + XCHAR tszEMailSubject[XPATH_MID]; + XCHAR tszServiceAddr[XPATH_MIN]; + XCHAR tszUser[XPATH_MIN]; + XCHAR tszPass[XPATH_MIN]; + bool bEnable; + }st_EMailNotify; + struct + { + bool bEnable; + }st_SMSNotify; + }st_XNotify; struct { bool bEnable; diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Error.h b/XEngine_Source/MQCore_ConfigModule/Config_Error.h index e3dda9a..e86d4e3 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Error.h +++ b/XEngine_Source/MQCore_ConfigModule/Config_Error.h @@ -23,4 +23,5 @@ #define ERROR_MQ_MODULE_CONFIG_JSON_XVER 0x0020008 #define ERROR_MQ_MODULE_CONFIG_JSON_XREPORT 0x0020009 #define ERROR_MQ_MODULE_CONFIG_JSON_XMEMORY 0x0020010 -#define ERROR_MQ_MODULE_CONFIG_JSON_XAUTHORIZE 0x0020011 \ No newline at end of file +#define ERROR_MQ_MODULE_CONFIG_JSON_XAUTHORIZE 0x0020011 +#define ERROR_MQ_MODULE_CONFIG_JSON_XNOTIFY 0x0020012 \ No newline at end of file diff --git a/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp b/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp index 40ffdad..ce25227 100644 --- a/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp +++ b/XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp @@ -139,6 +139,25 @@ bool CConfig_Json::Config_Json_File(LPCXSTR lpszConfigFile,XENGINE_SERVERCONFIG pSt_ServerConfig->st_XVerification.nVType = st_JsonXVerification["nVType"].asInt(); _tcsxcpy(pSt_ServerConfig->st_XVerification.tszAuthPass, st_JsonXVerification["tszAuthPass"].asCString()); + if (st_JsonRoot["XNotify"].empty() || (2 != st_JsonRoot["XNotify"].size())) + { + Config_IsErrorOccur = true; + Config_dwErrorCode = ERROR_MQ_MODULE_CONFIG_JSON_XNOTIFY; + return false; + } + Json::Value st_JsonXNotify = st_JsonRoot["XNotify"]; + Json::Value st_JsonEMailNotify = st_JsonXNotify["EmailNotify"]; + Json::Value st_JsonSMSNotify = st_JsonXNotify["SMSNotify"]; + + pSt_ServerConfig->st_XNotify.st_EMailNotify.bEnable = st_JsonEMailNotify["bEnable"].asBool(); + _tcsxcpy(pSt_ServerConfig->st_XNotify.st_EMailNotify.tszEMailSubject, st_JsonEMailNotify["tszEMailSubject"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XNotify.st_EMailNotify.tszServiceAddr, st_JsonEMailNotify["tszServiceAddr"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XNotify.st_EMailNotify.tszUser, st_JsonEMailNotify["tszUser"].asCString()); + _tcsxcpy(pSt_ServerConfig->st_XNotify.st_EMailNotify.tszPass, st_JsonEMailNotify["tszPass"].asCString()); + + pSt_ServerConfig->st_XNotify.st_SMSNotify.bEnable = st_JsonSMSNotify["bEnable"].asBool(); + + _tcsxcpy(pSt_ServerConfig->st_XVerification.tszAuthPass, st_JsonXVerification["tszAuthPass"].asCString()); if (st_JsonRoot["XReport"].empty() || (3 != st_JsonRoot["XReport"].size())) { Config_IsErrorOccur = true; diff --git a/XEngine_Source/Makefile b/XEngine_Source/Makefile index f8e3e9a..1d9a4bd 100644 --- a/XEngine_Source/Makefile +++ b/XEngine_Source/Makefile @@ -7,6 +7,7 @@ BASE_THIRDPART_JSONCPP = ./XEngine_DependLibrary/XEngine_Module/jsoncpp BASE_THIRDPART_REPORT = ./XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport BASE_THIRDPART_TOKEN = ./XEngine_DependLibrary/XEngine_Module/XEngine_Token BASE_THIRDPART_VERIFICATION = ./XEngine_DependLibrary/XEngine_Module/XEngine_Verification +BASE_THIRDPART_NOTIFY = ./XEngine_DependLibrary/XEngine_Module/XEngine_MSGNotify BASE_CONFIG_PATH = ./MQCore_ConfigModule BASE_PROTOCOL_PATH = ./MQCore_ProtocolModule @@ -23,7 +24,7 @@ else ifeq ($(PLATFORM),mac) FILEEXT = dylib endif -XENGINE_MODULES = libjsoncpp.so libXEngine_InfoReport.so libXEngine_Token.so libXEngine_Verification.so \ +XENGINE_MODULES = libjsoncpp.so libXEngine_InfoReport.so libXEngine_Token.so libXEngine_Verification.so libXEngine_MSGNotify.so \ libMQCore_ConfigModule.so libMQCore_ProtocolModule.so libMQCore_SessionModule.so libMQCore_MemoryCache.so libMQCore_DBModule.so libMQCore_HelpModule.so \ XEngine_MQServiceApp.exe @@ -55,6 +56,12 @@ ifeq ($(FLAGS), InstallAll) else make -C $(BASE_THIRDPART_VERIFICATION) PLATFORM=$(PLATFORM) $(FLAGS) endif +libXEngine_MSGNotify.so: +ifeq ($(FLAGS), InstallAll) + cp $(BASE_THIRDPART_NOTIFY)/libXEngine_MSGNotify.$(FILEEXT) ../XEngine_Release/ +else + make -C $(BASE_THIRDPART_NOTIFY) PLATFORM=$(PLATFORM) $(FLAGS) +endif libMQCore_ConfigModule.so: make -C $(BASE_CONFIG_PATH) PLATFORM=$(PLATFORM) UNICODE=$(UNICODE) RELEASE=$(RELEASE) $(FLAGS) diff --git a/XEngine_Source/XEngine_MQServiceApp.sln b/XEngine_Source/XEngine_MQServiceApp.sln index 883c6a7..5c60e2a 100644 --- a/XEngine_Source/XEngine_MQServiceApp.sln +++ b/XEngine_Source/XEngine_MQServiceApp.sln @@ -12,6 +12,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MQServiceApp", "XEn {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} = {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} {B0EB2A7A-53C1-4E9F-A851-19539099671C} = {B0EB2A7A-53C1-4E9F-A851-19539099671C} + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {E17E889F-D826-413F-854E-DBA6000B4DA7} {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} @@ -56,6 +57,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_De EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_DependLibrary\XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "..\..\XEngine_APIService\XEngine_Source\XEngine_DependLibrary\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -198,6 +201,18 @@ Global {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.Build.0 = Release|x64 {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.ActiveCfg = Release|Win32 {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.Build.0 = Release|Win32 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.Build.0 = Debug|ARM64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x64.ActiveCfg = Debug|x64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x64.Build.0 = Debug|x64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x86.ActiveCfg = Debug|Win32 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x86.Build.0 = Debug|Win32 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|ARM64.ActiveCfg = Release|ARM64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|ARM64.Build.0 = Release|ARM64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x64.ActiveCfg = Release|x64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x64.Build.0 = Release|x64 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.ActiveCfg = Release|Win32 + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -207,6 +222,7 @@ Global {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} + {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EFADBBBD-43B1-4B9B-9DD8-04415EBEFDA7} diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h index 40d76b3..94e9169 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h @@ -49,6 +49,8 @@ using namespace std; #include "../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport/InfoReport_Error.h" #include "../XEngine_DependLibrary/XEngine_Module/XEngine_Token/Session_Define.h" #include "../XEngine_DependLibrary/XEngine_Module/XEngine_Token/Session_Error.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_MSGNotify/MSGNotify_Define.h" +#include "../XEngine_DependLibrary/XEngine_Module/XEngine_MSGNotify/MSGNotify_Error.h" #include "../XQueue_ProtocolHdr.h" #include "../MQCore_ConfigModule/Config_Define.h" #include "../MQCore_ConfigModule/Config_Error.h" @@ -118,6 +120,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../x64/Debug/XEngine_InfoReport.lib") #pragma comment(lib,"../x64/Debug/XEngine_Token.lib") #pragma comment(lib,"../x64/Debug/XEngine_Verification.lib") +#pragma comment(lib,"../x64/Debug/XEngine_MSGNotify.lib") #elif _M_ARM64 #pragma comment(lib,"../ARM64/Debug/MQCore_ConfigModule.lib") #pragma comment(lib,"../ARM64/Debug/MQCore_ProtocolModule.lib") @@ -128,6 +131,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../ARM64/Debug/XEngine_InfoReport.lib") #pragma comment(lib,"../ARM64/Debug/XEngine_Token.lib") #pragma comment(lib,"../ARM64/Debug/XEngine_Verification.lib") +#pragma comment(lib,"../ARM64/Debug/XEngine_MSGNotify.lib") #elif _M_IX86 #pragma comment(lib,"../Debug/MQCore_ConfigModule.lib") #pragma comment(lib,"../Debug/MQCore_ProtocolModule.lib") @@ -138,6 +142,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../Debug/XEngine_InfoReport.lib") #pragma comment(lib,"../Debug/XEngine_Token.lib") #pragma comment(lib,"../Debug/XEngine_Verification.lib") +#pragma comment(lib,"../Debug/XEngine_MSGNotify.lib") #endif #else #ifdef _M_X64 @@ -150,6 +155,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../x64/Release/XEngine_InfoReport.lib") #pragma comment(lib,"../x64/Release/XEngine_Token.lib") #pragma comment(lib,"../x64/Release/XEngine_Verification.lib") +#pragma comment(lib,"../x64/Release/XEngine_MSGNotify.lib") #elif _M_ARM64 #pragma comment(lib,"../ARM64/Release/MQCore_ConfigModule.lib") #pragma comment(lib,"../ARM64/Release/MQCore_ProtocolModule.lib") @@ -160,6 +166,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../ARM64/Release/XEngine_InfoReport.lib") #pragma comment(lib,"../ARM64/Release/XEngine_Token.lib") #pragma comment(lib,"../ARM64/Release/XEngine_Verification.lib") +#pragma comment(lib,"../ARM64/Release/XEngine_MSGNotify.lib") #elif _M_IX86 #pragma comment(lib,"../Release/MQCore_ConfigModule.lib") #pragma comment(lib,"../Release/MQCore_ProtocolModule.lib") @@ -170,6 +177,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"../Release/XEngine_InfoReport.lib") #pragma comment(lib,"../Release/XEngine_Token.lib") #pragma comment(lib,"../Release/XEngine_Verification.lib") +#pragma comment(lib,"../Release/XEngine_MSGNotify.lib") #endif #endif #endif \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp index d50b1a5..9429aa0 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp @@ -167,16 +167,16 @@ void XEngine_MQXService_Close(LPCXSTR lpszClientAddr, int nIPProto, bool bHeart) ////////////////////////////////////////////////////////////////////////// bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nIPProto) { - if (XENGINE_MQAPP_NETTYPE_TCP == nIPProto) - { - if (!NetCore_TCPXCore_SendEx(xhTCPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) - { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给TCP客户端:%s,失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); - return false; - } - } - else if (XENGINE_MQAPP_NETTYPE_HTTP == nIPProto) - { + if (XENGINE_MQAPP_NETTYPE_TCP == nIPProto) + { + if (!NetCore_TCPXCore_SendEx(xhTCPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给TCP客户端:%s,失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); + return false; + } + } + else if (XENGINE_MQAPP_NETTYPE_HTTP == nIPProto) + { CMQService_MemoryPool m_MQMemoryPool(XENGINE_MEMORY_SIZE_MAX); int nSDLen = XENGINE_MEMORY_SIZE_MAX; RFCCOMPONENTS_HTTP_HDRPARAM st_HTTPHdr = {}; @@ -191,17 +191,17 @@ bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给HTTP客户端:%s,失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); return false; } - } - else if (XENGINE_MQAPP_NETTYPE_WEBSOCKET == nIPProto) - { + } + else if (XENGINE_MQAPP_NETTYPE_WEBSOCKET == nIPProto) + { CMQService_MemoryPool m_MQMemoryPool(XENGINE_MEMORY_SIZE_MAX); - RfcComponents_WSCodec_EncodeMsg(lpszMsgBuffer, m_MQMemoryPool.get(), &nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_TEXT); + RfcComponents_WSCodec_EncodeMsg(lpszMsgBuffer, m_MQMemoryPool.get(), &nMsgLen, ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE_TEXT); if (!NetCore_TCPXCore_SendEx(xhWSSocket, lpszClientAddr, m_MQMemoryPool.get(), nMsgLen)) { XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给Websocket客户端:%s,失败,错误:%lX"), lpszClientAddr, NetCore_GetLastError()); return false; } - } + } else if (XENGINE_MQAPP_NETTYPE_MQTT == nIPProto) { if (!NetCore_TCPXCore_SendEx(xhMQTTSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen)) @@ -210,5 +210,13 @@ bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int return false; } } + else if (XENGINE_MQAPP_NETTYPE_EMAIL == nIPProto) + { + if (!MSGNotify_EMail_Send(st_ServiceCfg.st_XNotify.st_EMailNotify.tszServiceAddr, st_ServiceCfg.st_XNotify.st_EMailNotify.tszUser, st_ServiceCfg.st_XNotify.st_EMailNotify.tszPass, lpszClientAddr, st_ServiceCfg.st_XNotify.st_EMailNotify.tszEMailSubject, lpszMsgBuffer)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给EMail地址:%s 失败,错误码:%lX"), lpszClientAddr, MSGNotify_GetLastError()); + return false; + } + } return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp index 8867bc4..ee6fa9c 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp @@ -340,16 +340,23 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC { if (_tcsxlen(st_MQProtocol.tszMQUsr) > 0) { - //如果发送指定用户被指定. - if (SessionModule_Client_GetExist(NULL, st_MQProtocol.tszMQUsr)) + if (1 == st_MQProtocol.st_MSGAttr.byAttrEMail) { - int nClientType = 0; - XCHAR tszUserAddr[128] = {}; + XEngine_MQXService_Send(st_MQProtocol.tszMQUsr, st_DBQueue.tszMsgBuffer, st_DBQueue.nMsgLen, XENGINE_MQAPP_NETTYPE_EMAIL); + } + else + { + //如果发送指定用户被指定. + if (SessionModule_Client_GetExist(NULL, st_MQProtocol.tszMQUsr)) + { + int nClientType = 0; + XCHAR tszUserAddr[128] = {}; - SessionModule_Client_GetAddr(st_MQProtocol.tszMQUsr, tszUserAddr); - SessionModule_Client_GetType(tszUserAddr, &nClientType); - ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); - XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType); + SessionModule_Client_GetAddr(st_MQProtocol.tszMQUsr, tszUserAddr); + SessionModule_Client_GetType(tszUserAddr, &nClientType); + ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); + XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType); + } } } else diff --git a/XEngine_Source/XEngine_MQServiceApp/Makefile b/XEngine_Source/XEngine_MQServiceApp/Makefile index b8dca7c..b6be104 100644 --- a/XEngine_Source/XEngine_MQServiceApp/Makefile +++ b/XEngine_Source/XEngine_MQServiceApp/Makefile @@ -2,10 +2,10 @@ CC = g++ -Wall -std=c++20 PLATVER = LOADHDR = -I ./ LOADSO = -L ../MQCore_ConfigModule -L ../MQCore_ProtocolModule -L ../MQCore_SessionModule -L ../MQCore_MemoryCache -L ../MQCore_DBModule -L ../MQCore_HelpModule \ - -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Token -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Verification + -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Token -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Verification -L ../XEngine_DependLibrary/XEngine_Module/XEngine_MSGNotify LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXClient_APIHelp -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_WSProtocol -lRfcComponents_HttpProtocol -lRfcComponents_MQTTProtocol \ -lMQCore_ConfigModule -lMQCore_ProtocolModule -lMQCore_SessionModule -lMQCore_MemoryCache -lMQCore_DBModule -lMQCore_HelpModule \ - -ljsoncpp -lXEngine_InfoReport -lXEngine_Token -lXEngine_Verification + -ljsoncpp -lXEngine_InfoReport -lXEngine_Token -lXEngine_Verification -lXEngine_MSGNotify LIBEX = OBJECTS = MQService_Net.o MQService_Config.o MQService_TCPTask.o MQService_HttpTask.o MQService_WSTask.o MQService_Task.o MQService_MQTTTask.o MQService_HTTPPost.o MQService_HTTPGet.o XEngine_MQServiceApp.o diff --git a/XEngine_Source/XQueue_ProtocolHdr.h b/XEngine_Source/XQueue_ProtocolHdr.h index 120fb74..1ff3461 100644 --- a/XEngine_Source/XQueue_ProtocolHdr.h +++ b/XEngine_Source/XQueue_ProtocolHdr.h @@ -14,6 +14,8 @@ #define XENGINE_MQAPP_NETTYPE_HTTP 2 #define XENGINE_MQAPP_NETTYPE_WEBSOCKET 3 #define XENGINE_MQAPP_NETTYPE_MQTT 4 +#define XENGINE_MQAPP_NETTYPE_EMAIL 10 +#define XENGINE_MQAPP_NETTYPE_SMS 11 /////////////////////////////////////////////////////////////////////////// // 导出的数据定义 /////////////////////////////////////////////////////////////////////////// @@ -98,8 +100,8 @@ typedef struct XBYTE byAttrSelf : 1; //自己也能接受 XBYTE byAttrReply : 1; //对方必须回复 XBYTE byAttrActive : 1; //主动获取不受限制,比如超时的,不是自己发给自己的 - XBYTE byAttrResver4 : 1; - XBYTE byAttrResver5 : 1; + XBYTE byAttrEMail : 1; //此消息需要邮件通知 + XBYTE byAttrPhone : 1; //此消息需要短信通知 XBYTE byAttrResver6 : 1; XBYTE byAttrResver7 : 1; XBYTE byAttrResver; From b9bfd9bc8861fadea787d8c3fb8a7f4089925bee Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 14:47:41 +0800 Subject: [PATCH 17/24] modify:message header size --- XEngine_Source/XQueue_ProtocolHdr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XEngine_Source/XQueue_ProtocolHdr.h b/XEngine_Source/XQueue_ProtocolHdr.h index 1ff3461..df48316 100644 --- a/XEngine_Source/XQueue_ProtocolHdr.h +++ b/XEngine_Source/XQueue_ProtocolHdr.h @@ -109,8 +109,8 @@ typedef struct //消息队列服务协议 typedef struct { - XCHAR tszMQKey[XPATH_MAX]; //此消息的KEY,不填就是 XEngine_CommKey - XCHAR tszMQUsr[XPATH_MAX]; //此消息接受用户 + XCHAR tszMQKey[XPATH_MIN]; //此消息的KEY,不填就是 XEngine_CommKey + XCHAR tszMQUsr[XPATH_MIN]; //此消息接受用户 __int64x nSerial; //包序列号 __int64x nPubTime; //发布时间,根据自己需求配置时区,-1表示投递的消息通过用户主动获取,0表示即时发布消息给当前订阅的在线用户,>0表示发布的日期 int nKeepTime; //可用时间,单位秒,>0 超时秒数 From 2261bcc76f63a18947151138912cdfed0bbc8630 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 14:59:57 +0800 Subject: [PATCH 18/24] fixed:header protocol field incorrect when unread message reply --- .../ProtocolModule_Packet/ProtocolModule_Packet.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Packet/ProtocolModule_Packet.cpp b/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Packet/ProtocolModule_Packet.cpp index cfdeb65..b5ea1a5 100644 --- a/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Packet/ProtocolModule_Packet.cpp +++ b/XEngine_Source/MQCore_ProtocolModule/ProtocolModule_Packet/ProtocolModule_Packet.cpp @@ -641,13 +641,20 @@ XHANDLE CProtocolModule_Packet::ProtocolModule_Packet_UNReadCreate(XENGINE_PROTO pSt_UNRead->nType = enPayType; if (pSt_UNRead->nType == ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_BIN) { + pSt_UNRead->st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER; + pSt_UNRead->st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL; + pSt_UNRead->st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_XMQ; + pSt_UNRead->st_ProtocolHdr.unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REPUNREAD; pSt_UNRead->st_ProtocolHdr.byVersion = ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_JSON; } else { + pSt_UNRead->st_JsonRoot["wHeader"] = pSt_ProtocolHdr->wHeader; + pSt_UNRead->st_JsonRoot["wTail"] = pSt_ProtocolHdr->wTail; pSt_UNRead->st_JsonRoot["unOperatorType"] = pSt_ProtocolHdr->unOperatorType; pSt_UNRead->st_JsonRoot["unOperatorCode"] = pSt_ProtocolHdr->unOperatorCode; - pSt_UNRead->st_JsonRoot["wReserve"] = pSt_ProtocolHdr->wReserve; + pSt_UNRead->st_JsonRoot["byVersion"] = ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_JSON; + pSt_UNRead->st_JsonRoot["wReserve"] = 0; } return pSt_UNRead; } From 96069c204433181131f600f01f384bfda11e7617 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 15:21:42 +0800 Subject: [PATCH 19/24] fixed:windows build failure --- XEngine_Source/XEngine_MQServiceApp.sln | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/XEngine_Source/XEngine_MQServiceApp.sln b/XEngine_Source/XEngine_MQServiceApp.sln index 5c60e2a..1cd5324 100644 --- a/XEngine_Source/XEngine_MQServiceApp.sln +++ b/XEngine_Source/XEngine_MQServiceApp.sln @@ -9,8 +9,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MQServiceApp", "XEn {4B061F8B-A783-45EA-A8D1-78F9668C49D2} = {4B061F8B-A783-45EA-A8D1-78F9668C49D2} {5475F316-F9E9-4FF5-95ED-F7C9474709A3} = {5475F316-F9E9-4FF5-95ED-F7C9474709A3} {77321E0D-15DB-4C6E-8872-115CBBE41F27} = {77321E0D-15DB-4C6E-8872-115CBBE41F27} + {78F289B8-A4BD-4302-880A-13A4D08BA928} = {78F289B8-A4BD-4302-880A-13A4D08BA928} {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} = {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} {B0EB2A7A-53C1-4E9F-A851-19539099671C} = {B0EB2A7A-53C1-4E9F-A851-19539099671C} {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {E17E889F-D826-413F-854E-DBA6000B4DA7} @@ -40,7 +40,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_DBModule", "MQCore_D {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} = {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XEngine_Depend", "XEngine_Depend", "{BAC91AAE-D438-4999-9541-EB8804B12F0C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XEngine_DependLibrary", "XEngine_DependLibrary", "{BAC91AAE-D438-4999-9541-EB8804B12F0C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MQCore_MemoryCache", "MQCore_MemoryCache\MQCore_MemoryCache.vcxproj", "{8C55D3E0-FEC2-4A6C-A374-651516ED8F99}" EndProject @@ -55,10 +55,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngi EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_DependLibrary\XEngine_Module\XEngine_Token\XEngine_Token.vcxproj", "{E17E889F-D826-413F-854E-DBA6000B4DA7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_DependLibrary\XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "..\..\XEngine_APIService\XEngine_Source\XEngine_DependLibrary\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "XEngine_DependLibrary\XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{78F289B8-A4BD-4302-880A-13A4D08BA928}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 @@ -189,18 +189,6 @@ Global {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x64.Build.0 = Release|x64 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.ActiveCfg = Release|Win32 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.Build.0 = Release|Win32 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.Build.0 = Debug|ARM64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.ActiveCfg = Debug|x64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.Build.0 = Debug|x64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.ActiveCfg = Debug|Win32 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.Build.0 = Debug|Win32 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.ActiveCfg = Release|ARM64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.Build.0 = Release|ARM64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.ActiveCfg = Release|x64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.Build.0 = Release|x64 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.ActiveCfg = Release|Win32 - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.Build.0 = Release|Win32 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.ActiveCfg = Debug|ARM64 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.Build.0 = Debug|ARM64 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x64.ActiveCfg = Debug|x64 @@ -213,6 +201,18 @@ Global {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x64.Build.0 = Release|x64 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.ActiveCfg = Release|Win32 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.Build.0 = Release|Win32 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|ARM64.Build.0 = Debug|ARM64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x64.ActiveCfg = Debug|x64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x64.Build.0 = Debug|x64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x86.ActiveCfg = Debug|Win32 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x86.Build.0 = Debug|Win32 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|ARM64.ActiveCfg = Release|ARM64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|ARM64.Build.0 = Release|ARM64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x64.ActiveCfg = Release|x64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x64.Build.0 = Release|x64 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x86.ActiveCfg = Release|Win32 + {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -221,8 +221,8 @@ Global {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} - {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} + {78F289B8-A4BD-4302-880A-13A4D08BA928} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EFADBBBD-43B1-4B9B-9DD8-04415EBEFDA7} From 2025909512eb51c7c53594d86c2784bce10f12e2 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Thu, 28 Aug 2025 15:32:09 +0800 Subject: [PATCH 20/24] fixed:windows build failure --- XEngine_Source/XEngine_MQServiceApp.sln | 32 ++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/XEngine_Source/XEngine_MQServiceApp.sln b/XEngine_Source/XEngine_MQServiceApp.sln index 1cd5324..f6b6988 100644 --- a/XEngine_Source/XEngine_MQServiceApp.sln +++ b/XEngine_Source/XEngine_MQServiceApp.sln @@ -9,8 +9,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MQServiceApp", "XEn {4B061F8B-A783-45EA-A8D1-78F9668C49D2} = {4B061F8B-A783-45EA-A8D1-78F9668C49D2} {5475F316-F9E9-4FF5-95ED-F7C9474709A3} = {5475F316-F9E9-4FF5-95ED-F7C9474709A3} {77321E0D-15DB-4C6E-8872-115CBBE41F27} = {77321E0D-15DB-4C6E-8872-115CBBE41F27} - {78F289B8-A4BD-4302-880A-13A4D08BA928} = {78F289B8-A4BD-4302-880A-13A4D08BA928} {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} = {8C55D3E0-FEC2-4A6C-A374-651516ED8F99} + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} {B0EB2A7A-53C1-4E9F-A851-19539099671C} = {B0EB2A7A-53C1-4E9F-A851-19539099671C} {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {E17E889F-D826-413F-854E-DBA6000B4DA7} @@ -55,9 +55,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_InfoReport", "XEngi EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Token", "XEngine_DependLibrary\XEngine_Module\XEngine_Token\XEngine_Token.vcxproj", "{E17E889F-D826-413F-854E-DBA6000B4DA7}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "..\..\XEngine_APIService\XEngine_Source\XEngine_DependLibrary\XEngine_OPenSource\XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_Verification", "XEngine_DependLibrary\XEngine_Module\XEngine_Verification\XEngine_Verification.vcxproj", "{A8E43EC0-698A-4807-8A61-B2BE5FAB7256}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "XEngine_DependLibrary\XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{78F289B8-A4BD-4302-880A-13A4D08BA928}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XEngine_MSGNotify", "XEngine_DependLibrary\XEngine_Module\XEngine_MSGNotify\XEngine_MSGNotify.vcxproj", "{E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -189,6 +189,18 @@ Global {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x64.Build.0 = Release|x64 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.ActiveCfg = Release|Win32 {E17E889F-D826-413F-854E-DBA6000B4DA7}.Release|x86.Build.0 = Release|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|ARM64.Build.0 = Debug|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.ActiveCfg = Debug|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x64.Build.0 = Debug|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.ActiveCfg = Debug|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Debug|x86.Build.0 = Debug|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.ActiveCfg = Release|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|ARM64.Build.0 = Release|ARM64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.ActiveCfg = Release|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x64.Build.0 = Release|x64 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.ActiveCfg = Release|Win32 + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256}.Release|x86.Build.0 = Release|Win32 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.ActiveCfg = Debug|ARM64 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|ARM64.Build.0 = Debug|ARM64 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Debug|x64.ActiveCfg = Debug|x64 @@ -201,18 +213,6 @@ Global {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x64.Build.0 = Release|x64 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.ActiveCfg = Release|Win32 {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA}.Release|x86.Build.0 = Release|Win32 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|ARM64.Build.0 = Debug|ARM64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x64.ActiveCfg = Debug|x64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x64.Build.0 = Debug|x64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x86.ActiveCfg = Debug|Win32 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Debug|x86.Build.0 = Debug|Win32 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|ARM64.ActiveCfg = Release|ARM64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|ARM64.Build.0 = Release|ARM64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x64.ActiveCfg = Release|x64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x64.Build.0 = Release|x64 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x86.ActiveCfg = Release|Win32 - {78F289B8-A4BD-4302-880A-13A4D08BA928}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -221,8 +221,8 @@ Global {F1736B3F-03A2-4FC7-B045-A12BA8D724FB} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {F6520D2C-BB8E-45BB-964B-F5D6A4318A89} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {E17E889F-D826-413F-854E-DBA6000B4DA7} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} + {A8E43EC0-698A-4807-8A61-B2BE5FAB7256} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} {E1087BA3-1074-4C6A-B770-A53B7BA1F4EA} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} - {78F289B8-A4BD-4302-880A-13A4D08BA928} = {BAC91AAE-D438-4999-9541-EB8804B12F0C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {EFADBBBD-43B1-4B9B-9DD8-04415EBEFDA7} From 465c231ef6152eb38c7f68f07f6b2b0acf15dde4 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 29 Aug 2025 10:10:20 +0800 Subject: [PATCH 21/24] modify:Message notifications now support additional notifications and not send single user --- .../XEngine_MQServiceApp/MQService_Hdr.h | 3 ++ .../XEngine_MQServiceApp/MQService_Net.cpp | 27 ++++++++++++-- .../XEngine_MQServiceApp/MQService_Net.h | 2 +- .../MQService_TCPTask.cpp | 37 ++++++++++--------- XEngine_Source/XQueue_ProtocolHdr.h | 4 +- 5 files changed, 48 insertions(+), 25 deletions(-) diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h index 94e9169..ee9ab7c 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h @@ -31,6 +31,8 @@ using namespace std; #include #include #include +#include +#include #include #include #include @@ -102,6 +104,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig; #pragma comment(lib,"XEngine_Core/XEngine_Core.lib") #pragma comment(lib,"XEngine_Core/XEngine_ManagePool.lib") #pragma comment(lib,"XEngine_Client/XClient_APIHelp.lib") +#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIAddr.lib") #pragma comment(lib,"XEngine_HelpComponents/HelpComponents_XLog.lib") #pragma comment(lib,"XEngine_HelpComponents/HelpComponents_Packets.lib") #pragma comment(lib,"XEngine_RfcComponents/RfcComponents_HttpProtocol.lib") diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp index 9429aa0..65ec8c2 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.cpp @@ -165,7 +165,7 @@ void XEngine_MQXService_Close(LPCXSTR lpszClientAddr, int nIPProto, bool bHeart) SessionModule_Client_Delete(lpszClientAddr); } ////////////////////////////////////////////////////////////////////////// -bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nIPProto) +bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nIPProto, XENGINE_PROTOCOL_MSGATTR* pSt_MSGAttr, LPCXSTR lpszUserName) { if (XENGINE_MQAPP_NETTYPE_TCP == nIPProto) { @@ -210,13 +210,32 @@ bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int return false; } } - else if (XENGINE_MQAPP_NETTYPE_EMAIL == nIPProto) + + if (NULL != pSt_MSGAttr) { - if (!MSGNotify_EMail_Send(st_ServiceCfg.st_XNotify.st_EMailNotify.tszServiceAddr, st_ServiceCfg.st_XNotify.st_EMailNotify.tszUser, st_ServiceCfg.st_XNotify.st_EMailNotify.tszPass, lpszClientAddr, st_ServiceCfg.st_XNotify.st_EMailNotify.tszEMailSubject, lpszMsgBuffer)) + XENGINE_PROTOCOL_USERINFO st_UserInfo = {}; + _tcsxcpy(st_UserInfo.tszUserName, lpszUserName); + + if (!DBModule_MQUser_UserQuery(&st_UserInfo)) { - XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给EMail地址:%s 失败,错误码:%lX"), lpszClientAddr, MSGNotify_GetLastError()); + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s 请求消息通知失败,因为没有找到指定的用户信息,错误码:%lX"), lpszClientAddr,lpszUserName, DBModule_GetLastError()); return false; } + //是否需要邮件通知 + if (pSt_MSGAttr->byAttrEMail) + { + if (!APIAddr_EMail_IsEMailAddr(st_UserInfo.tszEMailAddr)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("客户端:%s,用户名:%s 请求消息通知失败,通知邮件地址不正确,错误码:%lX"), lpszClientAddr, lpszUserName, APIAddr_GetLastError()); + return false; + } + if (!MSGNotify_EMail_Send(st_ServiceCfg.st_XNotify.st_EMailNotify.tszServiceAddr, st_ServiceCfg.st_XNotify.st_EMailNotify.tszUser, st_ServiceCfg.st_XNotify.st_EMailNotify.tszPass, lpszClientAddr, st_ServiceCfg.st_XNotify.st_EMailNotify.tszEMailSubject, lpszMsgBuffer)) + { + XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("发送数据给EMail地址:%s 失败,错误码:%lX"), lpszClientAddr, MSGNotify_GetLastError()); + return false; + } + } } + return true; } \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h index 3a1b1fa..723b1dd 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Net.h @@ -17,4 +17,4 @@ void XCALLBACK MessageQueue_Callback_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSoc void XCALLBACK MessageQueue_Callback_WSLeave(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam); void XEngine_MQXService_Close(LPCXSTR lpszClientAddr, int nIPProto, bool bHeart); -bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nIPProto); \ No newline at end of file +bool XEngine_MQXService_Send(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nIPProto, XENGINE_PROTOCOL_MSGATTR* pSt_MSGAttr = NULL, LPCXSTR lpszUserName = NULL); \ No newline at end of file diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp index ee6fa9c..735951c 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp @@ -328,11 +328,13 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC } nSDLen = 0; int nClientType = 0; + XCHAR tszTmpUser[XPATH_MID] = {}; memset(tszSDBuffer, '\0', sizeof(tszSDBuffer)); SessionModule_Client_GetType(pptszListAddr[i], &nClientType); + SessionModule_Client_GetUser(pptszListAddr[i], tszTmpUser); ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); - XEngine_MQXService_Send(pptszListAddr[i], tszSDBuffer, nSDLen, nClientType); + XEngine_MQXService_Send(pptszListAddr[i], tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr, tszTmpUser); BaseLib_Memory_Free((XPPPMEM)&pptszListAddr, nListCount); } } @@ -340,24 +342,20 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC { if (_tcsxlen(st_MQProtocol.tszMQUsr) > 0) { - if (1 == st_MQProtocol.st_MSGAttr.byAttrEMail) + //如果发送指定用户被指定. + if (SessionModule_Client_GetExist(NULL, st_MQProtocol.tszMQUsr)) { - XEngine_MQXService_Send(st_MQProtocol.tszMQUsr, st_DBQueue.tszMsgBuffer, st_DBQueue.nMsgLen, XENGINE_MQAPP_NETTYPE_EMAIL); - } - else - { - //如果发送指定用户被指定. - if (SessionModule_Client_GetExist(NULL, st_MQProtocol.tszMQUsr)) - { - int nClientType = 0; - XCHAR tszUserAddr[128] = {}; - - SessionModule_Client_GetAddr(st_MQProtocol.tszMQUsr, tszUserAddr); - SessionModule_Client_GetType(tszUserAddr, &nClientType); - ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); - XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType); - } + int nClientType = 0; + XCHAR tszUserAddr[128] = {}; + XCHAR tszTmpUser[XPATH_MID] = {}; + + SessionModule_Client_GetAddr(st_MQProtocol.tszMQUsr, tszUserAddr); + SessionModule_Client_GetType(tszUserAddr, &nClientType); + SessionModule_Client_GetUser(tszUserAddr, tszTmpUser); + ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); + XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr, tszTmpUser); } + } else { @@ -380,10 +378,13 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC //只有在线用户才需要即时通知 if (SessionModule_Client_GetExist(NULL, ppSt_ListUser[i]->tszUserName)) { + XCHAR tszTmpUser[XPATH_MID] = {}; + SessionModule_Client_GetAddr(ppSt_ListUser[i]->tszUserName, tszUserAddr); SessionModule_Client_GetType(tszUserAddr, &nClientType); + SessionModule_Client_GetUser(tszUserAddr, tszTmpUser); ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); - XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType); + XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr, tszTmpUser); } } BaseLib_Memory_Free((XPPPMEM)&ppSt_ListUser, nListCount); diff --git a/XEngine_Source/XQueue_ProtocolHdr.h b/XEngine_Source/XQueue_ProtocolHdr.h index df48316..f2e56f0 100644 --- a/XEngine_Source/XQueue_ProtocolHdr.h +++ b/XEngine_Source/XQueue_ProtocolHdr.h @@ -100,8 +100,8 @@ typedef struct XBYTE byAttrSelf : 1; //自己也能接受 XBYTE byAttrReply : 1; //对方必须回复 XBYTE byAttrActive : 1; //主动获取不受限制,比如超时的,不是自己发给自己的 - XBYTE byAttrEMail : 1; //此消息需要邮件通知 - XBYTE byAttrPhone : 1; //此消息需要短信通知 + XBYTE byAttrEMail : 1; //此消息需要邮件通知,仅限即时消息 + XBYTE byAttrPhone : 1; //此消息需要短信通知,仅限即时消息 XBYTE byAttrResver6 : 1; XBYTE byAttrResver7 : 1; XBYTE byAttrResver; From 78c581ecda888d5ee2e6796cb0d8332f65547b24 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Fri, 29 Aug 2025 10:19:55 +0800 Subject: [PATCH 22/24] added:time publish for message notify --- XEngine_Source/VSCopy_Arm64.bat | 1 + XEngine_Source/VSCopy_Debug.bat | 1 + XEngine_Source/VSCopy_x64.bat | 1 + XEngine_Source/VSCopy_x86.bat | 1 + XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp | 6 +----- XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp | 2 +- XEngine_Source/XEngine_MQServiceApp/Makefile | 2 +- XEngine_Source/XQueue_ProtocolHdr.h | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/XEngine_Source/VSCopy_Arm64.bat b/XEngine_Source/VSCopy_Arm64.bat index 4c93702..01a6cc6 100644 --- a/XEngine_Source/VSCopy_Arm64.bat +++ b/XEngine_Source/VSCopy_Arm64.bat @@ -11,6 +11,7 @@ copy /y "%XEngine_LibArm64%\XEngine_Client\XClient_APIHelp.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" +copy /y "%XEngine_LibArm64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_LibArm64%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/VSCopy_Debug.bat b/XEngine_Source/VSCopy_Debug.bat index f74e47a..1f5aeea 100644 --- a/XEngine_Source/VSCopy_Debug.bat +++ b/XEngine_Source/VSCopy_Debug.bat @@ -11,6 +11,7 @@ copy /y "D:\XEngine\XEngine_SourceCode\Debug\XClient_APIHelp.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIHelp.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_XSocket.dll" "./" +copy /y "D:\XEngine\XEngine_SourceCode\Debug\NetHelp_APIAddr.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_Packets.dll" "./" copy /y "D:\XEngine\XEngine_SourceCode\Debug\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/VSCopy_x64.bat b/XEngine_Source/VSCopy_x64.bat index 9497c4a..fad27b5 100644 --- a/XEngine_Source/VSCopy_x64.bat +++ b/XEngine_Source/VSCopy_x64.bat @@ -11,6 +11,7 @@ copy /y "%XEngine_Lib64%\XEngine_Client\XClient_APIHelp.dll" "./" copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" +copy /y "%XEngine_Lib64%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib64%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/VSCopy_x86.bat b/XEngine_Source/VSCopy_x86.bat index 3cffff0..24115df 100644 --- a/XEngine_Source/VSCopy_x86.bat +++ b/XEngine_Source/VSCopy_x86.bat @@ -11,6 +11,7 @@ copy /y "%XEngine_Lib32%\XEngine_Client\XClient_APIHelp.dll" "./" copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIHelp.dll" "./" copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_XSocket.dll" "./" +copy /y "%XEngine_Lib32%\XEngine_NetHelp\NetHelp_APIAddr.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_Packets.dll" "./" copy /y "%XEngine_Lib32%\XEngine_HelpComponents\HelpComponents_XLog.dll" "./" diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp index 735951c..6349207 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp @@ -355,7 +355,6 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr, tszTmpUser); } - } else { @@ -378,13 +377,10 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC //只有在线用户才需要即时通知 if (SessionModule_Client_GetExist(NULL, ppSt_ListUser[i]->tszUserName)) { - XCHAR tszTmpUser[XPATH_MID] = {}; - SessionModule_Client_GetAddr(ppSt_ListUser[i]->tszUserName, tszUserAddr); SessionModule_Client_GetType(tszUserAddr, &nClientType); - SessionModule_Client_GetUser(tszUserAddr, tszTmpUser); ProtocolModule_Packet_Common(nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof(XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof(XENGINE_PROTOCOL_XMQ)); - XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr, tszTmpUser); + XEngine_MQXService_Send(tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr, ppSt_ListUser[i]->tszUserName); } } BaseLib_Memory_Free((XPPPMEM)&ppSt_ListUser, nListCount); diff --git a/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp b/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp index 24ed959..9bdbdbf 100644 --- a/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp +++ b/XEngine_Source/XEngine_MQServiceApp/MQService_Task.cpp @@ -47,7 +47,7 @@ void XCALLBACK MessageQueue_CBTask_TimePublish(XENGINE_DBTIMERELEASE* pSt_DBInfo SessionModule_Client_GetAddr(ppSt_ListUser[i]->tszUserName, tszUserAddr); SessionModule_Client_GetType(tszUserAddr, &nNetType); ProtocolModule_Packet_Common(nNetType, &st_ProtocolHdr, &st_MQProtocol, tszMsgBuffer, &nMsgLen, st_DBInfo.tszMsgBuffer, st_DBInfo.nMsgLen); - XEngine_MQXService_Send(tszUserAddr, tszMsgBuffer, nMsgLen, nNetType); + XEngine_MQXService_Send(tszUserAddr, tszMsgBuffer, nMsgLen, nNetType, &st_MQProtocol.st_MSGAttr, ppSt_ListUser[i]->tszUserName); } BaseLib_Memory_Free((XPPPMEM)&ppSt_ListUser, nListCount); diff --git a/XEngine_Source/XEngine_MQServiceApp/Makefile b/XEngine_Source/XEngine_MQServiceApp/Makefile index b6be104..92735b2 100644 --- a/XEngine_Source/XEngine_MQServiceApp/Makefile +++ b/XEngine_Source/XEngine_MQServiceApp/Makefile @@ -3,7 +3,7 @@ PLATVER = LOADHDR = -I ./ LOADSO = -L ../MQCore_ConfigModule -L ../MQCore_ProtocolModule -L ../MQCore_SessionModule -L ../MQCore_MemoryCache -L ../MQCore_DBModule -L ../MQCore_HelpModule \ -L ../XEngine_DependLibrary/XEngine_Module/jsoncpp -L ../XEngine_DependLibrary/XEngine_Module/XEngine_InfoReport -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Token -L ../XEngine_DependLibrary/XEngine_Module/XEngine_Verification -L ../XEngine_DependLibrary/XEngine_Module/XEngine_MSGNotify -LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXClient_APIHelp -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_WSProtocol -lRfcComponents_HttpProtocol -lRfcComponents_MQTTProtocol \ +LIB = -lXEngine_BaseLib -lXEngine_Algorithm -lXEngine_Core -lXEngine_ManagePool -lXClient_APIHelp -lNetHelp_APIAddr -lXEngine_SystemApi -lHelpComponents_XLog -lHelpComponents_Packets -lRfcComponents_WSProtocol -lRfcComponents_HttpProtocol -lRfcComponents_MQTTProtocol \ -lMQCore_ConfigModule -lMQCore_ProtocolModule -lMQCore_SessionModule -lMQCore_MemoryCache -lMQCore_DBModule -lMQCore_HelpModule \ -ljsoncpp -lXEngine_InfoReport -lXEngine_Token -lXEngine_Verification -lXEngine_MSGNotify LIBEX = diff --git a/XEngine_Source/XQueue_ProtocolHdr.h b/XEngine_Source/XQueue_ProtocolHdr.h index f2e56f0..04f80ef 100644 --- a/XEngine_Source/XQueue_ProtocolHdr.h +++ b/XEngine_Source/XQueue_ProtocolHdr.h @@ -100,8 +100,8 @@ typedef struct XBYTE byAttrSelf : 1; //自己也能接受 XBYTE byAttrReply : 1; //对方必须回复 XBYTE byAttrActive : 1; //主动获取不受限制,比如超时的,不是自己发给自己的 - XBYTE byAttrEMail : 1; //此消息需要邮件通知,仅限即时消息 - XBYTE byAttrPhone : 1; //此消息需要短信通知,仅限即时消息 + XBYTE byAttrEMail : 1; //此消息需要邮件通知,仅限即时和定时消息 + XBYTE byAttrPhone : 1; //此消息需要短信通知,仅限即时和定时消息 XBYTE byAttrResver6 : 1; XBYTE byAttrResver7 : 1; XBYTE byAttrResver; From 29a60be5b6feb6ac9f977d04aa8178eb4cab0b18 Mon Sep 17 00:00:00 2001 From: qyt <486179@qq.com> Date: Mon, 1 Sep 2025 10:08:21 +0800 Subject: [PATCH 23/24] update:readme and document --- CHANGELOG | 30 +++++++++++++++++++ README.en.md | 3 ++ README.md | 3 ++ XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp | 2 +- XEngine_Docment/Docment_en.docx | Bin 132991 -> 134450 bytes XEngine_Docment/Docment_zh.docx | Bin 136743 -> 137813 bytes 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index a3b41ee..33c6da4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,33 @@ +XEngine_MQService V3.17.0.1001 + +增加:rocky linux 10 支持 +增加:http basic和digest验证支持 +增加:电子邮件通知功能 +更新:依赖库 +更新:匹配最新xengine 版本 +优化:消息响应设置 +修改:依赖库目录名 +修改:启动参数不区分大小写 +修改:消息协议头大小 +修正:某些时候配置读取内存溢出 +修正:版本输出错误 +修正:未读消息协议头字段不正确 +删除:注册验证 + +added:ci rocky linux 10 support +added:http basic and digest verification support +added:email notify support +update:depend library +update:match xengine last version +improved:reply message protocol set +modify:depend library direction name +modify:start parameter are not case sensitive +modify:message header size +fixed:sometime load configure memory leak +fixed:version print failure when set -v parameter +fixed:header protocol field incorrect when unread message reply +delete:register authorize +====================================================================================== XEngine_MQService V3.16.0.1001 增加:使用内存池发送数据 diff --git a/README.en.md b/README.en.md index 57a9275..c967926 100644 --- a/README.en.md +++ b/README.en.md @@ -35,6 +35,9 @@ this software support following features 19. message attritube 20. point to point message 21. Memory Database +22. http verification +23. email notify +24. sms notify(plan) ## install diff --git a/README.md b/README.md index bda934f..63144b5 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,9 @@ c c++Message Service 19. 消息属性 20. 点对点消息 21. 高速缓存 +22. http验证 +23. 电子邮件通知 +24. 短信通知(plan) ## 安装教程 diff --git a/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp b/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp index 79796a7..a200676 100644 --- a/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp +++ b/XEngine_Apps/MQCore_TCPApp/MQCore_TCPApp.cpp @@ -579,7 +579,7 @@ int main(int argc, char** argv) _xtprintf("连接成功!\n"); MQ_Authorize(); - MQ_PostEMail("test for email"); + //MQ_PostEMail("test for email"); MQ_GetUNRead(); MQ_Create(); MQ_Post(NULL, ENUM_XENGINE_PROTOCOLHDR_PAYLOAD_TYPE_BIN, -1, true); diff --git a/XEngine_Docment/Docment_en.docx b/XEngine_Docment/Docment_en.docx index 7c700baa18754d7f1bccd6c8a795b2c36e0f1537..43eade6fb922fa1931a117d2bbcf01d037e8e305 100644 GIT binary patch delta 115735 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 Z@E{?;L9$ delta 114263 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 }p95 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

L=^; zdfoTD-@tUWty&X0OFDS0Gu$`86Unr%;*PZm*{+)8)ao{M>p%vOTsm#n(^B@vwP!4G ztTwLRQ$jq41-xdc6*vA!3oVG={T=l7^!}m@^?9Y|zGJ2C`E^|_`x|kHkTn(=@MI@j zG#l7@yyL0(Vb+oGqu-sErGx{1uH|or)i>k-T9}G&iw&U^Kb3y=GP3dD4-t?c*Y^qd zkcZy7=Fsdv!SELJ1|+BO_%w;OE{`d%_s#tF_sp;o#N)tf1Vn;n>t9TB70<>tY^~I{=UCx}o-~v>?Jf>o9{Q8!pQ8UVIR4 z)5H#xJvL%{tiMFJqmWE}9}INEsS7qVfX2`|F32keB;{FK`9%F zPlBt&X?Huwi^ORS-xZ1EkU--=ABydKbK-mRwkAzJ4y|dl#d0OX7s}s=1(9|TiW5cx zZjH=0+AF1S!8@&HErMbOT4dMXG}o&ZG7C@94=8F0p09^27Esnyy%uZ-txj%0XN zzR|K_OpOjV1t;axw%$<25C=*V`{@(=)ypr{9mD z5^E-^PNWXIFW}hCPJd@0B|66=L+F|^?l_~;4SYwRPS`}d2qHP*zy<{i4w0mb#sjpzySvY#eyhQL+zKXxkX#qhLQ zn&GUs@)D%yQ@Z~mGAx}We2Z)o_X`v!6p%tDxq{ldIlfOUYM`x1@W;+dQX~8Qy*tbo zv28P-&YL~qV&)=#HF2G4g@slzE5OgsX^VhkweStRI?q7LgH+t|KU|3=u%Sh__eK9` z4;q3sbcm|;10w^a+cMHID>`_12V$y3*ub9wq1&~M5l@cwjJEh6=8S&{C>}HeEP#Pt zA^b+RU#R%L!jdKK52|LIDSZ`wXPDHsGNmygMdN4lkHMP>^>$(y$~KMG zNtNa zKaq5n1<}UY&Rfq@H%S6N|%saWsjy0d~1qE5n!$LNkfBItgvb)J3R-FLxDOPI`_$9G>aNH#%}q`G_cDAP^Wcf=aS~NesyOyLU^B!OG zmH$*cV|r<(z$q6md}WFqxX7u!9i4C?xYCEK)?ogaI>n%R;7`p2H!vD|+f^_!T+Z4# zC#mR5Y<=2+f$$`{!O5|wjAkpA>n@$5{V>$@ITl4A9GA*K_Y)C=r<;g)r>-5(-w?w4 zOn3n82#A$?-W|a<@NdI|glybb1OF;B$7!xo&sR)6(=UdzR6it8fnPU&D@f`?r8i#6 z>dbu0b~wDwr410N7kOma8FgFWg?0q>{L2db7yS(*;0?;~!kd*TuC|79r0Mb0#v_5_ zN&kr`BgJpNl;4xWMQC;Y_+akd^a~t7DK1v25B@L7TbAK9O1+JaYB9$LsxyeSmw)f( zt~~F8u?0(FVi2wm2n7Sqd4s}kaDY~YLn_n#xA)EA(82$ehrCft+k)Wv= z{-+Osyu2QekoEuGh2tI6CsPNLpUw`BF03XF&fsoH^~C@CWrrM({{LLs^#hm<8Cn3Q n@)-*3hzum#{F(c2PNBm@$+L8nc9+9` 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 G&Hn`&8*t75 delta 114921 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 Date: Mon, 1 Sep 2025 10:08:41 +0800 Subject: [PATCH 24/24] update:configure file --- XEngine_Release/XEngine_Config/XEngine_VerConfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/XEngine_Release/XEngine_Config/XEngine_VerConfig.json b/XEngine_Release/XEngine_Config/XEngine_VerConfig.json index 5fc8e48..296adc0 100644 --- a/XEngine_Release/XEngine_Config/XEngine_VerConfig.json +++ b/XEngine_Release/XEngine_Config/XEngine_VerConfig.json @@ -1,5 +1,6 @@ { "XVer":[ + "3.17.0.1001 Build20250901", "3.16.0.1001 Build20250524", "3.15.0.1001 Build20250313", "3.14.0.1001 Build20250120",