@@ -328,36 +328,34 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC
328328 }
329329 nSDLen = 0 ;
330330 int nClientType = 0 ;
331+ XCHAR tszTmpUser[XPATH_MID] = {};
331332 memset (tszSDBuffer, ' \0 ' , sizeof (tszSDBuffer));
332333
333334 SessionModule_Client_GetType (pptszListAddr[i], &nClientType);
335+ SessionModule_Client_GetUser (pptszListAddr[i], tszTmpUser);
334336 ProtocolModule_Packet_Common (nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof (XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof (XENGINE_PROTOCOL_XMQ));
335- XEngine_MQXService_Send (pptszListAddr[i], tszSDBuffer, nSDLen, nClientType);
337+ XEngine_MQXService_Send (pptszListAddr[i], tszSDBuffer, nSDLen, nClientType, &st_MQProtocol. st_MSGAttr , tszTmpUser );
336338 BaseLib_Memory_Free ((XPPPMEM)&pptszListAddr, nListCount);
337339 }
338340 }
339341 else
340342 {
341343 if (_tcsxlen (st_MQProtocol.tszMQUsr ) > 0 )
342344 {
343- if (1 == st_MQProtocol.st_MSGAttr .byAttrEMail )
345+ // 如果发送指定用户被指定.
346+ if (SessionModule_Client_GetExist (NULL , st_MQProtocol.tszMQUsr ))
344347 {
345- XEngine_MQXService_Send (st_MQProtocol.tszMQUsr , st_DBQueue.tszMsgBuffer , st_DBQueue.nMsgLen , XENGINE_MQAPP_NETTYPE_EMAIL);
346- }
347- else
348- {
349- // 如果发送指定用户被指定.
350- if (SessionModule_Client_GetExist (NULL , st_MQProtocol.tszMQUsr ))
351- {
352- int nClientType = 0 ;
353- XCHAR tszUserAddr[128 ] = {};
354-
355- SessionModule_Client_GetAddr (st_MQProtocol.tszMQUsr , tszUserAddr);
356- SessionModule_Client_GetType (tszUserAddr, &nClientType);
357- ProtocolModule_Packet_Common (nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof (XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof (XENGINE_PROTOCOL_XMQ));
358- XEngine_MQXService_Send (tszUserAddr, tszSDBuffer, nSDLen, nClientType);
359- }
348+ int nClientType = 0 ;
349+ XCHAR tszUserAddr[128 ] = {};
350+ XCHAR tszTmpUser[XPATH_MID] = {};
351+
352+ SessionModule_Client_GetAddr (st_MQProtocol.tszMQUsr , tszUserAddr);
353+ SessionModule_Client_GetType (tszUserAddr, &nClientType);
354+ SessionModule_Client_GetUser (tszUserAddr, tszTmpUser);
355+ ProtocolModule_Packet_Common (nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof (XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof (XENGINE_PROTOCOL_XMQ));
356+ XEngine_MQXService_Send (tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol.st_MSGAttr , tszTmpUser);
360357 }
358+
361359 }
362360 else
363361 {
@@ -380,10 +378,13 @@ bool MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCXSTR lpszC
380378 // 只有在线用户才需要即时通知
381379 if (SessionModule_Client_GetExist (NULL , ppSt_ListUser[i]->tszUserName ))
382380 {
381+ XCHAR tszTmpUser[XPATH_MID] = {};
382+
383383 SessionModule_Client_GetAddr (ppSt_ListUser[i]->tszUserName , tszUserAddr);
384384 SessionModule_Client_GetType (tszUserAddr, &nClientType);
385+ SessionModule_Client_GetUser (tszUserAddr, tszTmpUser);
385386 ProtocolModule_Packet_Common (nClientType, pSt_ProtocolHdr, &st_MQProtocol, tszSDBuffer, &nSDLen, lpszMsgBuffer + sizeof (XENGINE_PROTOCOL_XMQ), nMsgLen - sizeof (XENGINE_PROTOCOL_XMQ));
386- XEngine_MQXService_Send (tszUserAddr, tszSDBuffer, nSDLen, nClientType);
387+ XEngine_MQXService_Send (tszUserAddr, tszSDBuffer, nSDLen, nClientType, &st_MQProtocol. st_MSGAttr , tszTmpUser );
387388 }
388389 }
389390 BaseLib_Memory_Free ((XPPPMEM)&ppSt_ListUser, nListCount);
0 commit comments