@@ -17,11 +17,11 @@ void CALLBACK XEngine_Client_TCPRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LP
1717}
1818void CALLBACK XEngine_Client_TCPClose (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
1919{
20- XEngine_CloseClient (lpszClientAddr, false );
20+ XEngine_CloseClient (lpszClientAddr, 1 );
2121}
2222void CALLBACK XEngine_Client_TCPHeart (LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
2323{
24- XEngine_CloseClient (lpszClientAddr, true );
24+ XEngine_CloseClient (lpszClientAddr, 2 );
2525}
2626// ////////////////////////////////////////////////////////////////////////
2727bool CALLBACK XEngine_Client_WSAccept (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
@@ -57,11 +57,11 @@ void CALLBACK XEngine_Client_WSRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, LPC
5757}
5858void CALLBACK XEngine_Client_WSClose (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
5959{
60- XEngine_CloseClient (lpszClientAddr, false );
60+ XEngine_CloseClient (lpszClientAddr, 1 );
6161}
6262void CALLBACK XEngine_Client_WSHeart (LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
6363{
64- XEngine_CloseClient (lpszClientAddr, true );
64+ XEngine_CloseClient (lpszClientAddr, 2 );
6565}
6666// ////////////////////////////////////////////////////////////////////////
6767bool CALLBACK XEngine_Client_HttpAccept (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
@@ -81,30 +81,41 @@ void CALLBACK XEngine_Client_HttpRecv(LPCXSTR lpszClientAddr, XSOCKET hSocket, L
8181}
8282void CALLBACK XEngine_Client_HttpClose (LPCXSTR lpszClientAddr, XSOCKET hSocket, XPVOID lParam)
8383{
84- XEngine_CloseClient (lpszClientAddr, false );
84+ XEngine_CloseClient (lpszClientAddr, 1 );
8585}
8686void CALLBACK XEngine_Client_HttpHeart (LPCXSTR lpszClientAddr, XSOCKET hSocket, int nStatus, XPVOID lParam)
8787{
88- XEngine_CloseClient (lpszClientAddr, true );
88+ XEngine_CloseClient (lpszClientAddr, 2 );
8989}
9090// ////////////////////////////////////////////////////////////////////////
91- bool XEngine_CloseClient (LPCXSTR lpszClientAddr, bool bHeart )
91+ bool XEngine_CloseClient (LPCXSTR lpszClientAddr, int nLeaveType )
9292{
9393 xstring m_StrLeave;
94- if (bHeart )
94+ if (0 == nLeaveType )
9595 {
9696 NetCore_TCPXCore_CloseForClientEx (xhTCPSocket, lpszClientAddr);
9797 NetCore_TCPXCore_CloseForClientEx (xhWSSocket, lpszClientAddr);
9898 NetCore_TCPXCore_CloseForClientEx (xhHttpSocket, lpszClientAddr);
99- m_StrLeave = _X (" 心跳断开" );
99+
100+ SocketOpt_HeartBeat_DeleteAddrEx (xhTCPHeart, lpszClientAddr);
101+ SocketOpt_HeartBeat_DeleteAddrEx (xhWSHeart, lpszClientAddr);
102+ SocketOpt_HeartBeat_DeleteAddrEx (xhHTTPHeart, lpszClientAddr);
103+ m_StrLeave = _X (" 主动断开" );
100104 }
101- else
105+ else if ( 1 == nLeaveType)
102106 {
103107 SocketOpt_HeartBeat_DeleteAddrEx (xhTCPHeart, lpszClientAddr);
104108 SocketOpt_HeartBeat_DeleteAddrEx (xhWSHeart, lpszClientAddr);
105109 SocketOpt_HeartBeat_DeleteAddrEx (xhHTTPHeart, lpszClientAddr);
106110 m_StrLeave = _X (" 正常断开" );
107111 }
112+ else
113+ {
114+ NetCore_TCPXCore_CloseForClientEx (xhTCPSocket, lpszClientAddr);
115+ NetCore_TCPXCore_CloseForClientEx (xhWSSocket, lpszClientAddr);
116+ NetCore_TCPXCore_CloseForClientEx (xhHttpSocket, lpszClientAddr);
117+ m_StrLeave = _X (" 心跳断开" );
118+ }
108119 HelpComponents_Datas_DeleteEx (xhTCPPacket, lpszClientAddr);
109120 RfcComponents_WSPacket_DeleteEx (xhWSPacket, lpszClientAddr);
110121 HttpProtocol_Server_CloseClinetEx (xhHttpPacket, lpszClientAddr);
0 commit comments