Преглед изворни кода

!2 if ask get config,return vtm_terminalno

chenliangyu пре 1 година
родитељ
комит
6de8c4008b

+ 16 - 1
Module/mod_chromium/CWebsocketServer.cpp

@@ -553,6 +553,21 @@ namespace Chromium {
 			else
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CWebsocketServer::deal_msg get transIdJson failed");
 			return;
+		}
+		else if (ret.first == MessageType::WEB_GET_HTTP_HEADER)
+		{
+			CSystemStaticInfo staticInfo;
+			m_pEntity->GetFunction()->GetSystemStaticInfo(staticInfo);
+
+			std::string dst_js = "";
+
+			if (staticInfo.strTerminalID.GetLength() == 0) // terminalno is empty
+				dst_js = "";
+			else
+				dst_js = m_esm->Get_getconfig_ack(staticInfo.strTerminalID.GetData()).second;
+			do_send_msg(hdl, dst_js);
+
+			
 		}
 		else if (ret.first == MessageType::BeginSession)
 			storeEntityWithCLass(m_serializer->GetEntityName(payload), m_serializer->GetClassName(payload));
@@ -740,7 +755,7 @@ namespace Chromium {
 			delete[]unformateStr;
 
 			auto messageType = messageTypeJson.second;
-			if (messageType < WEB_CHROMIUM_MSG_BEGIN)
+			if (messageType < MessageType::WEB_SPECICAL_MANAGE_END)
 			{
 				/*
 				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("deal_msg, messageType:%d(%s), len:%d, payload:%s", messageType, GetMessageTypeString(messageType).c_str(),

+ 47 - 0
Module/mod_chromium/EntitySessionManager.cpp

@@ -411,6 +411,53 @@ namespace Chromium {
 		}
 		return std::make_pair(false, "error generateJsonStr");
 	}
+	/*
+	{
+		"format_version": "1.1",
+		"target_page": "",
+		"headers": [
+		  {
+			"url_contains": "",
+			"action": "add",
+			"header_name": "zzzz_terminalno",
+			"header_value": "7555980178",
+			"comment": "test",
+			"apply_on": "req",
+			"status": "on"
+		  }
+		],
+		"debug_mode": True,
+		"use_url_contains": False
+	}
+	
+	*/
+
+	std::pair<int, std::string> EntitySessionManager::Get_getconfig_ack(std::string terminalno)
+	{
+		Json::Value root;
+		root["format_version"] = "1.1";
+		root["target_page"] = "";
+
+		Json::Value headers;
+		Json::Value header;
+		header["url_contains"] = "";
+		header["action"] = "add";
+		header["header_name"] = "VTM_terminalno";
+		header["header_value"] = terminalno;
+		header["comment"] = "test";
+		header["apply_on"] = "req";
+		header["status"] = "on";
+		headers.append(header);
+
+		root["headers"] = headers;
+		root["debug_mode"] = true;
+		root["use_url_contains"] = false;
+
+		Json::StyledWriter writer;
+		std::string output = writer.write(root);
+
+		return std::make_pair(true, output);
+	}
 
 	std::string EntitySessionManager::GetStartSessionAck(CMessage* msg, std::string entityname) {
 		auto s = GetSessionIDByEntityName(entityname);

+ 1 - 0
Module/mod_chromium/EntitySessionManager.h

@@ -37,6 +37,7 @@ namespace Chromium {
 
 		std::pair<int, std::string> GetStartSessionRequest(std::string entityname, std::string className);	//返回分配的transId和生成的beginSession串
 		std::pair<int, std::string> GetAllSessionRequest(int transId, bool isInitCfg);
+		std::pair<int, std::string> Get_getconfig_ack(std::string terminalno);
 		RequestProcessType RequestProcess(CMessage* msg, std::string entityName, unsigned int hdlID, const ws_msgInfo &msgInfo);
 		AckProcessType AckProcess(CMessage* msg, unsigned int& hdlID);
 		AckProcessType AskProcessEvent(CMessage* msg, std::vector<std::pair<int, int>>& transIdandHdlIDArr);