@@ -63,7 +63,35 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
6363 lpszClientType = _T (" WEBSOCKET" );
6464 }
6565
66- if (ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH == pSt_ProtocolHdr->unOperatorType )
66+ if (ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_HEARTBEAT == pSt_ProtocolHdr->unOperatorType )
67+ {
68+ if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_HB_SYN == pSt_ProtocolHdr->unOperatorCode )
69+ {
70+ if (XENGINE_MQAPP_NETTYPE_HTTP == nNetType)
71+ {
72+ _stprintf (tszSessionStr, _T (" %lld" ), pSt_ProtocolHdr->xhToken );
73+ }
74+ else
75+ {
76+ _tcscpy (tszSessionStr, lpszClientAddr);
77+ }
78+ SessionModule_Client_Heart (tszSessionStr);
79+ // 如果设置了标志位或者是HTTP请求,那么返回消息
80+ if (pSt_ProtocolHdr->byIsReply || (XENGINE_MQAPP_NETTYPE_HTTP == nNetType))
81+ {
82+ pSt_ProtocolHdr->unPacketSize = 0 ;
83+ pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_HB_ACK;
84+ ProtocolModule_Packet_Common (nNetType, pSt_ProtocolHdr, NULL , tszSDBuffer, &nSDLen);
85+ XEngine_MQXService_Send (lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
86+ }
87+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_DEBUG, _T (" 客户端:%s,处理心跳协议成功,回复标志位:%d" ), lpszClientAddr, pSt_ProtocolHdr->byIsReply );
88+ }
89+ else
90+ {
91+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T (" 客户端:%s,处理心跳子协议失败,协议类型没有找到:%d" ), lpszClientAddr, pSt_ProtocolHdr->unOperatorCode );
92+ }
93+ }
94+ else if (ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH == pSt_ProtocolHdr->unOperatorType )
6795 {
6896 if (XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REQUSERLOG == pSt_ProtocolHdr->unOperatorCode )
6997 {
0 commit comments