Przeglądaj źródła

!2 accomplish vtm_event, add param entityName

chenliangyu 4 miesięcy temu
rodzic
commit
63e244aadb

+ 1 - 0
Module/mod_chromium/CMethodInterface.h

@@ -8,6 +8,7 @@ namespace Chromium {
 	class CMedthodInterface {
 	public:
 		bool m_forceNewReturn;
+		std::string mEntityName;
 		std::string mMethodName;
 		std::string mMethodType;
 		CTransStruct mRequestInterpreter;

+ 4 - 3
Module/mod_chromium/CStructureInterpreter.cpp

@@ -45,6 +45,8 @@ namespace Chromium {
 		std::string strEntityName = pEntity->Attribute("name");
 		std::vector<CMedthodInterface> messageInterface;
 		this->loadMessageInterface(messageInterface, pEntity);
+		for (auto &it : messageInterface)
+			it.mEntityName = strEntityName;
 		this->mMessageStructureMap.insert(std::pair<std::string, std::vector<CMedthodInterface>>(strEntityName, messageInterface));
 		// get class node
 		tinyxml2::XMLElement* pClass = pEntity->FirstChildElement("class");
@@ -53,6 +55,8 @@ namespace Chromium {
 		std::string strClassName = pClass->Attribute("name");
 		std::map<int, CMedthodInterface> functionInterface;
 		this->loadFunctionInterface(functionInterface, pClass);
+		for (auto &it : functionInterface)
+			it.second.mEntityName = strEntityName;
 		m_inServiceEntity.insert(strEntityName);
 		this->mMethodStructureMap.insert(std::pair<std::string, std::map<int, CMedthodInterface>>(strEntityName.append(strClassName), functionInterface));
 		
@@ -96,9 +100,6 @@ namespace Chromium {
 				functionInterface.insert(std::pair<int, CMedthodInterface>(i, method));
 			}
 			
-			
-
-
 			//		functionInterface.emplace_back(method);
 			element = element->NextSiblingElement();
 		}

+ 2 - 0
Module/mod_chromium/CWSCodec.cpp

@@ -682,6 +682,8 @@ namespace Chromium {
 				free(str);
 				return s;
 			}
+			if(iter->second->size() > 0)
+				msgInfo.entityName = iter->second->at(0).mEntityName;
 			DeserializeEvent(msg, iter->second, rpos, ret, isSafe);
 		}
 

+ 12 - 8
Module/mod_chromium/CWebsocketServer.cpp

@@ -1297,17 +1297,20 @@ namespace Chromium {
 		}
 		else
 		{
+			/*
 			if (ConfigManager::getInstance().m_withLinkLog)
 				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("WebSocket Search message_from_socket : json = %s", js.c_str());
 			else if (messageType != MessageType::RequestAck && messageType != MessageType::Event)//do not upload message which messageType equals to RequestAck or Event
 				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("WebSocket Search message_from_socket : json = %s", js.c_str());
+			*/
 			if (js.empty())
 			{
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("string empty");
 				return;
 			}
-			if (ConfigManager::getInstance().m_connection_hdls.empty() && ConfigManager::getInstance().m_connection_ws_sm2_hdls.empty())
-				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket : no websocket client connection");
+			if (ConfigManager::getInstance().m_connection_hdls.empty() && ConfigManager::getInstance().m_connection_ws_sm2_hdls.empty() && messageType != MessageType::Event)
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)
+					("message_from_socket : no websocket client connection, messageType:%s", GetMessageTypeString(messageType));
 			else {
 #if(defined _WIN32 || defined _WIN64)
 				js = string_to_utf8(js);
@@ -1331,12 +1334,13 @@ namespace Chromium {
 		// get message from socket and deserialize 
 		// then send back to the web client
 		auto bufferLength = msg.getBufferLength();
+		
 		/*
 		if (bufferLength > MAX_TRANSFER_LEN)
-			DbgEx("WebSocket Search message_from_socket : buffer len = %d, buffer pre50:%s", msg.getBufferLength(), msg.printfHEX(50).c_str());
+			DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("WebSocket Search message_from_socket : buffer len = %d, buffer pre50:%s", msg.getBufferLength(), msg.printfHEX(50).c_str());
 		else
 			receivehexdump(msg.getPayload(), msg.getLength());
-			*/
+		*/
 		//else
 		//	DbgEx("WebSocket Search message_from_socket : buffer len = %d", msg.getBufferLength());
 
@@ -1384,14 +1388,14 @@ namespace Chromium {
 				unaccurate_js = js;
 			}
 			auto signatureID = msg.getSignatureID();
-			auto sessionId = msg.getSessionID();
-			auto sessionEntityName = EntitySessionManager::FromSessionIdToEntityName(sessionId);
+			auto sessionId = cur_from_socket.sessionId;
+			auto sessionEntityName = cur_from_socket.entityName;
 			if (sendArr.size() == 0)
-				LogManager::getInstance().logVtmEvent(-1, -1, sessionId, sessionEntityName.second, 0, "send", sendArr,
+				LogManager::getInstance().logVtmEvent(-1, -1, sessionId, sessionEntityName, 0, "send", sendArr,
 					cur_from_socket.payLoad, cur_from_socket.msgBytes, Error_NotExist, "message_from_socket event sendArr.size() == 0");
 			else if (signatureID != eMsgSig_LogInfo && signatureID != eMsgSig_EntityStatus && signatureID != eMsgSig_PerformanceList)//fiter guiconsole msg
 			{
-				LogManager::getInstance().logVtmEvent(-1, -1, sessionId, sessionEntityName.second, 0, "send", sendArr,
+				LogManager::getInstance().logVtmEvent(-1, -1, sessionId, sessionEntityName, 0, "send", sendArr,
 					cur_from_socket.payLoad, cur_from_socket.msgBytes);
 				/*
 #ifdef DEVOPS_ON_ST