Explorar o código

!2 can return errorCode and errorMsg

chenliangyu hai 8 meses
pai
achega
dd55239e33

+ 3 - 2
Module/mod_chromium/CWSCodec.cpp

@@ -511,8 +511,9 @@ namespace Chromium {
 			return std::string(); // 丢弃消息
 
 		bool isSafe = false;
-		if (ConfigManager::getInstance().m_ws_infoArr.find(msgInfo.hdlId) != ConfigManager::getInstance().m_ws_infoArr.end())
-			isSafe = ConfigManager::getInstance().m_ws_infoArr[msgInfo.hdlId].isSafe;
+		auto it = ConfigManager::getInstance().m_ws_infoArr;
+		if (it.find(msgInfo.hdlId) != it.end())
+			isSafe = it[msgInfo.hdlId].isSafe;
 
 		int srcTransId = msg.getTransID();
 		// 通用反序列化

+ 3 - 0
Module/mod_chromium/CWebsocketServer.cpp

@@ -1374,6 +1374,7 @@ namespace Chromium {
 			for (auto i = sendArr.begin(); i != sendArr.end(); i++)
 			{
 				msg.setTransID(i->first);
+				cur_from_socket.hdlId = i->second;
 				std::string js = this->m_serializer->BufferToJson(msg, boost::bind(&EntitySessionManager::doWithErrorCode, m_esm, _1, _2), cur_from_socket, 0);
 				do_sendJson(js, msg.getMessageType(), i->second, id, cur_from_socket);
 				unaccurate_js = js;
@@ -1423,6 +1424,7 @@ namespace Chromium {
 			}
 			if (0 != hdlID)
 			{//hdlId为0时,说明本地发起的session
+				cur_from_socket.hdlId = hdlID;
 				std::string js = this->m_serializer->BufferToJson(msg, boost::bind(&EntitySessionManager::doWithErrorCode, m_esm, _1, _2), cur_from_socket, replaceTransId);
 				do_sendJson(js, msg.getMessageType(), hdlID, id, cur_from_socket);	//发给首记录的CMessage
 			}
@@ -1459,6 +1461,7 @@ namespace Chromium {
 		else
 		{
 			m_esm->AckProcess(&msg, hdlID); //替换真实的transId,update session map
+			cur_from_socket.hdlId = hdlID;
 			std::string js = this->m_serializer->BufferToJson(msg, boost::bind(&EntitySessionManager::doWithErrorCode, m_esm, _1, _2), cur_from_socket, replaceTransId);
 			do_sendJson(js, msg.getMessageType(), hdlID, id, cur_from_socket);
 		}