33bool CALLBACK XEngine_Client_TCPAccept (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
44{
55 HelpComponents_Datas_CreateEx (xhTCPPacket, lpszClientAddr, 0 );
6+ SocketOpt_HeartBeat_InsertAddrEx (xhTCPHeart, lpszClientAddr);
67 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" TCP客户端:%s,进入服务器" ), lpszClientAddr);
78 return true ;
89}
@@ -12,6 +13,7 @@ void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LP
1213 {
1314 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" 客户端:%s,投递数据包失败,大小:%d,错误:%lX" ), lpszClientAddr, nMsgLen, Packets_GetLastError ());
1415 }
16+ SocketOpt_HeartBeat_ActiveAddrEx (xhTCPHeart, lpszClientAddr);
1517}
1618void CALLBACK XEngine_Client_TCPClose (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
1719{
@@ -24,6 +26,7 @@ void CALLBACK XEngine_Client_TCPHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, i
2426// ////////////////////////////////////////////////////////////////////////
2527bool CALLBACK XEngine_Client_WSAccept (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
2628{
29+ HelpComponents_Datas_CreateEx (xhWSHeart, lpszClientAddr, 0 );
2730 RfcComponents_WSPacket_CreateEx (xhWSPacket, lpszClientAddr, 0 );
2831 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" WS客户端:%s,进入服务器" ), lpszClientAddr);
2932 return true ;
@@ -50,6 +53,7 @@ void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPC
5053 RfcComponents_WSPacket_SetLoginEx (xhWSPacket, lpszClientAddr);
5154 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" WS客户端:%s,握手成功" ), lpszClientAddr);
5255 }
56+ SocketOpt_HeartBeat_ActiveAddrEx (xhWSHeart, lpszClientAddr);
5357}
5458void CALLBACK XEngine_Client_WSClose (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
5559{
@@ -63,6 +67,7 @@ void CALLBACK XEngine_Client_WSHeart(LPCXSTR lpszClientAddr, XSOCKET hSocket, in
6367bool CALLBACK XEngine_Client_HttpAccept (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
6468{
6569 HttpProtocol_Server_CreateClientEx (xhHttpPacket, lpszClientAddr, 0 );
70+ RfcComponents_WSPacket_CreateEx (xhHTTPHeart, lpszClientAddr, 0 );
6671 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,进入服务器" ), lpszClientAddr);
6772 return true ;
6873}
@@ -72,6 +77,7 @@ void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, L
7277 {
7378 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,投递数据包失败,大小:%d,错误:%lX" ), lpszClientAddr, nMsgLen, Packets_GetLastError ());
7479 }
80+ SocketOpt_HeartBeat_ActiveAddrEx (xhHTTPHeart, lpszClientAddr);
7581}
7682void CALLBACK XEngine_Client_HttpClose (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
7783{
@@ -90,6 +96,12 @@ bool XEngine_CloseClient(LPCXSTR lpszClientAddr, bool bHeart)
9096 NetCore_TCPXCore_CloseForClientEx (xhWSSocket, lpszClientAddr);
9197 NetCore_TCPXCore_CloseForClientEx (xhHttpSocket, lpszClientAddr);
9298 }
99+ else
100+ {
101+ SocketOpt_HeartBeat_DeleteAddrEx (xhTCPHeart, lpszClientAddr);
102+ SocketOpt_HeartBeat_DeleteAddrEx (xhWSHeart, lpszClientAddr);
103+ SocketOpt_HeartBeat_DeleteAddrEx (xhHTTPHeart, lpszClientAddr);
104+ }
93105 HelpComponents_Datas_DeleteEx (xhTCPPacket, lpszClientAddr);
94106 RfcComponents_WSPacket_DeleteEx (xhWSPacket, lpszClientAddr);
95107 HttpProtocol_Server_CloseClinetEx (xhHttpPacket, lpszClientAddr);
@@ -174,10 +186,12 @@ bool XEngine_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen,
174186 ptszCodecBuffer = NULL ;
175187 }
176188 NetCore_TCPXCore_SendEx (xhWSSocket, lpszClientAddr, ptszMsgBuffer, nMsgLen);
189+ SocketOpt_HeartBeat_ActiveAddrEx (xhWSHeart, lpszClientAddr);
177190 }
178191 else if (XENGINE_AUTH_APP_NETTYPE_TCP == nNetType)
179192 {
180193 NetCore_TCPXCore_SendEx (xhTCPSocket, lpszClientAddr, lpszMsgBuffer, nMsgLen);
194+ SocketOpt_HeartBeat_ActiveAddrEx (xhTCPHeart, lpszClientAddr);
181195 }
182196 else
183197 {
@@ -205,6 +219,7 @@ bool XEngine_SendMsg(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int nMsgLen,
205219 ManagePool_Memory_Free (xhMemPool, ptszCodecBuffer);
206220 }
207221 NetCore_TCPXCore_SendEx (xhHttpSocket, lpszClientAddr, ptszMsgBuffer, nSDSize);
222+ SocketOpt_HeartBeat_ActiveAddrEx (xhHTTPHeart, lpszClientAddr);
208223 }
209224 ManagePool_Memory_Free (xhMemPool, ptszMsgBuffer);
210225 return true ;
0 commit comments