Skip to content

Commit 5857ffa

Browse files
committed
fixed: p2p heartbeat not work
added:center service heartbeat
1 parent c653bc0 commit 5857ffa

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

XEngine_Source/XEngine_StorageApp/StorageApp_Hdr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ extern XLOG xhLog;
8484

8585
extern XNETHANDLE xhHBDownload;
8686
extern XNETHANDLE xhHBUPLoader;
87+
extern XNETHANDLE xhHBCenter;
8788
extern XNETHANDLE xhHBP2xp;
8889

8990
extern XNETHANDLE xhNetDownload;

XEngine_Source/XEngine_StorageApp/StorageApp_Network.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ void CALLBACK XEngine_Callback_UPLoaderLeave(LPCTSTR lpszClientAddr, SOCKET hSoc
4848
BOOL CALLBACK XEngine_Callback_CenterLogin(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
4949
{
5050
RfcComponents_HttpServer_CreateClientEx(xhCenterHttp, lpszClientAddr, 0);
51+
SocketOpt_HeartBeat_InsertAddrEx(xhHBCenter, lpszClientAddr);
5152
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("业务客户端:%s,进入了服务器"), lpszClientAddr);
5253
return TRUE;
5354
}
@@ -58,6 +59,7 @@ void CALLBACK XEngine_Callback_CenterRecv(LPCTSTR lpszClientAddr, SOCKET hSocket
5859
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("业务客户端:%s,投递数据失败,大小:%d,错误;%lX"), lpszClientAddr, nMsgLen, HttpServer_GetLastError());
5960
return;
6061
}
62+
SocketOpt_HeartBeat_ActiveAddrEx(xhHBCenter, lpszClientAddr);
6163
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T("业务客户端:%s,投递包成功,大小:%d"), lpszClientAddr, nMsgLen);
6264
}
6365
void CALLBACK XEngine_Callback_CenterLeave(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
@@ -68,6 +70,7 @@ void CALLBACK XEngine_Callback_CenterLeave(LPCTSTR lpszClientAddr, SOCKET hSocke
6870
BOOL CALLBACK XEngine_Callback_P2xpLogin(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
6971
{
7072
HelpComponents_Datas_CreateEx(xhP2XPPacket, lpszClientAddr, 0);
73+
SocketOpt_HeartBeat_InsertAddrEx(xhHBP2xp, lpszClientAddr);
7174
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("P2XP客户端:%s,进入了服务器"), lpszClientAddr);
7275
return TRUE;
7376
}
@@ -78,6 +81,7 @@ void CALLBACK XEngine_Callback_P2xpRecv(LPCTSTR lpszClientAddr, SOCKET hSocket,
7881
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("P2XP客户端:%s,投递数据失败,大小:%d,错误;%lX"), lpszClientAddr, nMsgLen, HttpServer_GetLastError());
7982
return;
8083
}
84+
SocketOpt_HeartBeat_ActiveAddrEx(xhHBP2xp, lpszClientAddr);
8185
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T("P2XP客户端:%s,投递包成功,大小:%d"), lpszClientAddr, nMsgLen);
8286
}
8387
void CALLBACK XEngine_Callback_P2xpLeave(LPCTSTR lpszClientAddr, SOCKET hSocket, LPVOID lParam)
@@ -93,6 +97,10 @@ void CALLBACK XEngine_Callback_HBUPLoader(LPCTSTR lpszClientAddr, SOCKET hSocket
9397
{
9498
XEngine_Net_CloseClient(lpszClientAddr, STORAGE_LEAVETYPE_HEARTBEAT, STORAGE_NETTYPE_HTTPUPLOADER);
9599
}
100+
void CALLBACK XEngine_Callback_HBCenter(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam)
101+
{
102+
XEngine_Net_CloseClient(lpszClientAddr, STORAGE_LEAVETYPE_HEARTBEAT, STORAGE_NETTYPE_HTTPCENTER);
103+
}
96104
void CALLBACK XEngine_Callback_HBP2xp(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam)
97105
{
98106
XEngine_Net_CloseClient(lpszClientAddr, STORAGE_LEAVETYPE_HEARTBEAT, STORAGE_NETTYPE_TCPP2XP);
@@ -126,24 +134,28 @@ BOOL XEngine_Net_CloseClient(LPCTSTR lpszClientAddr, int nLeaveType, int nClient
126134
lpszLeaveMsg = _T("心跳超时");
127135
NetCore_TCPXCore_CloseForClientEx(xhNetDownload, lpszClientAddr);
128136
NetCore_TCPXCore_CloseForClientEx(xhNetUPLoader, lpszClientAddr);
137+
NetCore_TCPXCore_CloseForClientEx(xhNetCenter, lpszClientAddr);
129138
NetCore_TCPXCore_CloseForClientEx(xhNetP2xp, lpszClientAddr);
130139
}
131140
else if (STORAGE_LEAVETYPE_BYSELF == nLeaveType)
132141
{
133142
lpszLeaveMsg = _T("主动断开");
134143
SocketOpt_HeartBeat_DeleteAddrEx(xhHBDownload, lpszClientAddr);
135144
SocketOpt_HeartBeat_DeleteAddrEx(xhHBUPLoader, lpszClientAddr);
145+
SocketOpt_HeartBeat_DeleteAddrEx(xhHBCenter, lpszClientAddr);
136146
SocketOpt_HeartBeat_DeleteAddrEx(xhHBP2xp, lpszClientAddr);
137147
}
138148
else
139149
{
140150
lpszLeaveMsg = _T("主动关闭");
141151
NetCore_TCPXCore_CloseForClientEx(xhNetDownload, lpszClientAddr);
142152
NetCore_TCPXCore_CloseForClientEx(xhNetUPLoader, lpszClientAddr);
153+
NetCore_TCPXCore_CloseForClientEx(xhNetCenter, lpszClientAddr);
143154
NetCore_TCPXCore_CloseForClientEx(xhNetP2xp, lpszClientAddr);
144155

145156
SocketOpt_HeartBeat_DeleteAddrEx(xhHBDownload, lpszClientAddr);
146157
SocketOpt_HeartBeat_DeleteAddrEx(xhHBUPLoader, lpszClientAddr);
158+
SocketOpt_HeartBeat_DeleteAddrEx(xhHBCenter, lpszClientAddr);
147159
SocketOpt_HeartBeat_DeleteAddrEx(xhHBP2xp, lpszClientAddr);
148160
}
149161

@@ -190,6 +202,10 @@ BOOL XEngine_Net_SendMsg(LPCTSTR lpszClientAddr, LPCTSTR lpszMsgBuffer, int nMsg
190202
else if (STORAGE_NETTYPE_HTTPCENTER == nType)
191203
{
192204
bRet = NetCore_TCPXCore_SendEx(xhNetCenter, lpszClientAddr, lpszMsgBuffer, nMsgLen);
205+
if (bRet && st_ServiceCfg.st_XTime.bHBTime)
206+
{
207+
SocketOpt_HeartBeat_ActiveAddrEx(xhHBCenter, lpszClientAddr);
208+
}
193209
}
194210
else if (STORAGE_NETTYPE_TCPP2XP == nType)
195211
{

XEngine_Source/XEngine_StorageApp/StorageApp_Network.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ void CALLBACK XEngine_Callback_P2xpLeave(LPCTSTR lpszClientAddr, SOCKET hSocket,
1515

1616
void CALLBACK XEngine_Callback_HBDownload(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam);
1717
void CALLBACK XEngine_Callback_HBUPLoader(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam);
18+
void CALLBACK XEngine_Callback_HBCenter(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam);
1819
void CALLBACK XEngine_Callback_HBP2xp(LPCTSTR lpszClientAddr, SOCKET hSocket, int nStatus, LPVOID lParam);
1920

2021
BOOL XEngine_Net_CloseClient(LPCTSTR lpszClientAddr, int nLeaveType, int nClientType = STORAGE_NETTYPE_HTTPDOWNLOAD);

XEngine_Source/XEngine_StorageApp/XEngine_StorageApp.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ XLOG xhLog = NULL;
55

66
XNETHANDLE xhHBDownload = 0;
77
XNETHANDLE xhHBUPLoader = 0;
8+
XNETHANDLE xhHBCenter = 0;
89
XNETHANDLE xhHBP2xp = 0;
910

1011
XNETHANDLE xhNetDownload = 0;
@@ -48,6 +49,7 @@ void ServiceApp_Stop(int signo)
4849

4950
SocketOpt_HeartBeat_DestoryEx(xhHBDownload);
5051
SocketOpt_HeartBeat_DestoryEx(xhHBUPLoader);
52+
SocketOpt_HeartBeat_DestoryEx(xhHBCenter);
5153
SocketOpt_HeartBeat_DestoryEx(xhHBP2xp);
5254

5355
ManagePool_Thread_NQDestroy(xhUPPool);
@@ -189,6 +191,13 @@ int main(int argc, char** argv)
189191
}
190192
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化上传心跳管理服务成功,句柄:%llu,时间:%d,次数:%d"), xhHBUPLoader, st_ServiceCfg.st_XTime.nStorageTimeOut, st_ServiceCfg.st_XTime.nTimeCheck);
191193

194+
if (!SocketOpt_HeartBeat_InitEx(&xhHBCenter, st_ServiceCfg.st_XTime.nCenterTimeOut, st_ServiceCfg.st_XTime.nTimeCheck, XEngine_Callback_HBCenter))
195+
{
196+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化业务管理服务失败,错误:%lX"), NetCore_GetLastError());
197+
goto XENGINE_EXITAPP;
198+
}
199+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("启动服务中,初始化业务管理服务成功,句柄:%llu,时间:%d,次数:%d"), xhHBUPLoader, st_ServiceCfg.st_XTime.nCenterTimeOut, st_ServiceCfg.st_XTime.nTimeCheck);
200+
192201
if (!SocketOpt_HeartBeat_InitEx(&xhHBP2xp, st_ServiceCfg.st_XTime.nP2XPTimeOut, st_ServiceCfg.st_XTime.nTimeCheck, XEngine_Callback_HBP2xp))
193202
{
194203
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("启动服务中,初始化P2XP心跳管理服务失败,错误:%lX"), NetCore_GetLastError());
@@ -430,6 +439,7 @@ int main(int argc, char** argv)
430439

431440
SocketOpt_HeartBeat_DestoryEx(xhHBDownload);
432441
SocketOpt_HeartBeat_DestoryEx(xhHBUPLoader);
442+
SocketOpt_HeartBeat_DestoryEx(xhHBCenter);
433443
SocketOpt_HeartBeat_DestoryEx(xhHBP2xp);
434444

435445
ManagePool_Thread_NQDestroy(xhUPPool);

0 commit comments

Comments
 (0)