Skip to content

Commit ec57315

Browse files
committed
added:tcp and websocket and http heartbeat supported
1 parent 5be803f commit ec57315

File tree

6 files changed

+59
-1
lines changed

6 files changed

+59
-1
lines changed

XEngine_Release/XEngine_Config/XEngine_Config.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
"nWSThread":2,
1313
"nHTTPThread":2
1414
},
15+
"XTime":{
16+
"nHeartCheck":3,
17+
"nTCPTime":5,
18+
"nWSTime":5,
19+
"nHTTPTime":5
20+
},
1521
"XVerification":{
1622
"nTokenTimeout":3600,
1723
"nDynamicTimeout":30,

XEngine_Source/AuthorizeModule_Configure/Config_Error.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@
1919
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XSQL 0x0010007
2020
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XLOG 0x0010008
2121
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_MALLOC 0x0010009
22-
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_REPORT 0x001000A
22+
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_REPORT 0x0010010
23+
#define ERROR_AUTHORIZE_MODULE_CONFIGURE_XTIME 0x0010011

XEngine_Source/AuthorizeModule_Configure/ModuleConfigure_Json/ModuleConfigure_Json.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,18 @@ bool CModuleConfigure_Json::ModuleConfigure_Json_File(LPCXSTR lpszConfigFile, XE
100100
pSt_ServerConfig->st_XMax.nTCPThread = st_JsonXMax["nTCPThread"].asInt();
101101
pSt_ServerConfig->st_XMax.nWSThread = st_JsonXMax["nWSThread"].asInt();
102102
pSt_ServerConfig->st_XMax.nHTTPThread = st_JsonXMax["nHTTPThread"].asInt();
103+
//时间配置
104+
if (st_JsonRoot["XTime"].empty() || (4 != st_JsonRoot["XTime"].size()))
105+
{
106+
Config_IsErrorOccur = true;
107+
Config_dwErrorCode = ERROR_AUTHORIZE_MODULE_CONFIGURE_XTIME;
108+
return false;
109+
}
110+
Json::Value st_JsonXTime = st_JsonRoot["XTime"];
111+
pSt_ServerConfig->st_XTime.nHeartCheck = st_JsonXTime["nHeartCheck"].asInt();
112+
pSt_ServerConfig->st_XTime.nTCPTime = st_JsonXTime["nTCPTime"].asInt();
113+
pSt_ServerConfig->st_XTime.nWSTime = st_JsonXTime["nWSTime"].asInt();
114+
pSt_ServerConfig->st_XTime.nHTTPTime = st_JsonXTime["nHTTPTime"].asInt();
103115
//验证配置
104116
if (st_JsonRoot["XVerification"].empty() || (9 != st_JsonRoot["XVerification"].size()))
105117
{

XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ void CALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, X
1717
{
1818
XEngine_CloseClient(lpszClientAddr, false);
1919
}
20+
void CALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
21+
{
22+
XEngine_CloseClient(lpszClientAddr, true);
23+
}
2024
//////////////////////////////////////////////////////////////////////////
2125
bool CALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
2226
{
@@ -51,6 +55,10 @@ void CALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XP
5155
{
5256
XEngine_CloseClient(lpszClientAddr, false);
5357
}
58+
void CALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
59+
{
60+
XEngine_CloseClient(lpszClientAddr, true);
61+
}
5462
//////////////////////////////////////////////////////////////////////////
5563
bool CALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
5664
{
@@ -69,6 +77,10 @@ void CALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket,
6977
{
7078
XEngine_CloseClient(lpszClientAddr, false);
7179
}
80+
void CALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
81+
{
82+
XEngine_CloseClient(lpszClientAddr, true);
83+
}
7284
//////////////////////////////////////////////////////////////////////////
7385
bool XEngine_CloseClient(LPCXSTR lpszClientAddr, bool bHeart)
7486
{

XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/Authorize_Net.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
bool CALLBACK XEngine_Client_TCPAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
44
void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
55
void CALLBACK XEngine_Client_TCPClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
6+
void CALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
67

78
bool CALLBACK XEngine_Client_WSAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
89
void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
910
void CALLBACK XEngine_Client_WSClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
11+
void CALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
1012

1113
bool CALLBACK XEngine_Client_HttpAccept(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
1214
void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPCXSTR lpszRecvMsg, int nMsgLen, XPVOID lParam);
1315
void CALLBACK XEngine_Client_HttpClose(LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam);
16+
void CALLBACK XEngine_Client_HttpHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam);
1417

1518
bool XEngine_CloseClient(LPCXSTR lpszClientAddr, bool bHeart);
1619
bool XEngine_Client_TaskSend(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen, int nNetType);

XEngine_Source/XEngine_APPService/XEngine_AuthorizeService/XEngine_AuthorizeService.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,14 @@ int main(int argc, char** argv)
242242
NetCore_TCPXCore_RegisterCallBackEx(xhTCPSocket, XEngine_Client_TCPAccept, XEngine_Client_TCPRecv, XEngine_Client_TCPClose);
243243
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化TCP验证网络事件成功"));
244244

245+
xhTCPHeart = SocketOpt_HeartBeat_InitEx(st_AuthConfig.st_XTime.nHeartCheck, st_AuthConfig.st_XTime.nTCPTime, XEngine_Client_TCPHeart);
246+
if (NULL == xhTCPHeart)
247+
{
248+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化TCP验证心跳服务失败,错误:%lX"), NetCore_GetLastError());
249+
goto XENGINE_EXITAPP;
250+
}
251+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化TCP验证心跳服务成功,检测次数:%d,检测时间:%d"), st_AuthConfig.st_XTime.nHeartCheck, st_AuthConfig.st_XTime.nTCPTime);
252+
245253
BaseLib_Memory_Malloc((XPPPMEM)&ppSt_ListTCPThread, st_AuthConfig.st_XMax.nTCPThread, sizeof(THREADPOOL_PARAMENT));
246254
for (int i = 0; i < st_AuthConfig.st_XMax.nTCPThread; i++)
247255
{
@@ -274,6 +282,14 @@ int main(int argc, char** argv)
274282
NetCore_TCPXCore_RegisterCallBackEx(xhWSSocket, XEngine_Client_WSAccept, XEngine_Client_WSRecv, XEngine_Client_WSClose);
275283
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化WEBSOCKET验证网络事件成功"));
276284

285+
xhWSHeart = SocketOpt_HeartBeat_InitEx(st_AuthConfig.st_XTime.nHeartCheck, st_AuthConfig.st_XTime.nWSTime, XEngine_Client_WSHeart);
286+
if (NULL == xhWSHeart)
287+
{
288+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化WEBSOCKET验证心跳服务失败,错误:%lX"), NetCore_GetLastError());
289+
goto XENGINE_EXITAPP;
290+
}
291+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化WEBSOCKET验证心跳服务成功,检测次数:%d,检测时间:%d"), st_AuthConfig.st_XTime.nHeartCheck, st_AuthConfig.st_XTime.nWSTime);
292+
277293
BaseLib_Memory_Malloc((XPPPMEM)&ppSt_ListWSThread, st_AuthConfig.st_XMax.nWSThread, sizeof(THREADPOOL_PARAMENT));
278294
for (int i = 0; i < st_AuthConfig.st_XMax.nWSThread; i++)
279295
{
@@ -306,6 +322,14 @@ int main(int argc, char** argv)
306322
NetCore_TCPXCore_RegisterCallBackEx(xhHttpSocket, XEngine_Client_HttpAccept, XEngine_Client_HttpRecv, XEngine_Client_HttpClose);
307323
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化HTTP管理网络事件成功"));
308324

325+
xhHTTPHeart = SocketOpt_HeartBeat_InitEx(st_AuthConfig.st_XTime.nHeartCheck, st_AuthConfig.st_XTime.nHTTPTime, XEngine_Client_HttpHeart);
326+
if (NULL == xhHTTPHeart)
327+
{
328+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("启动服务中,初始化HTTP心跳服务失败,错误:%lX"), NetCore_GetLastError());
329+
goto XENGINE_EXITAPP;
330+
}
331+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,初始化HTTP心跳服务成功,检测次数:%d,检测时间:%d"), st_AuthConfig.st_XTime.nHeartCheck, st_AuthConfig.st_XTime.nHTTPTime);
332+
309333
BaseLib_Memory_Malloc((XPPPMEM)&ppSt_ListHttpThread, st_AuthConfig.st_XMax.nHTTPThread, sizeof(THREADPOOL_PARAMENT));
310334
for (int i = 0; i < st_AuthConfig.st_XMax.nHTTPThread; i++)
311335
{

0 commit comments

Comments
 (0)