Sfoglia il codice sorgente

Z991239-5349 #comment fea: print event and broadcast nums

chenliangyu 1 anno fa
parent
commit
56aea0e997

+ 22 - 22
Module/mod_chromium/CWSCodec.cpp

@@ -469,7 +469,7 @@ namespace Chromium {
 		// 通用反序列化
 		cJSON_AddNumberToObject(ret, "messageType", msg.getMessageType());
 		switch (msg.getMessageType()) {
-		case RequestAck: //PKT_TYPE_REQACK
+		case MessageType::RequestAck: //PKT_TYPE_REQACK
 			cJSON_AddNumberToObject(ret, "sessionID", msg.getSessionID());
 			cJSON_AddNumberToObject(ret, "transID", replaceTransId != 0 ? replaceTransId : msg.getTransID());
 			cJSON_AddNumberToObject(ret, "isEnd", msg.getIsEnd());
@@ -494,7 +494,7 @@ namespace Chromium {
 				cJSON_AddStringToObject(ret, "errorMsg", userCodeInfo.second.errMsg.c_str());
 			}
 			break;
-		case SessionAck:
+		case MessageType::SessionAck:
 			cJSON_AddNumberToObject(ret, "sessionID", msg.getSessionID());
 			cJSON_AddNumberToObject(ret, "transID", replaceTransId != 0 ? replaceTransId : msg.getTransID());
 			ReadT(msg.getPayload(), errorCode, &rpos);
@@ -511,13 +511,13 @@ namespace Chromium {
 				cJSON_AddStringToObject(ret, "errorMsg", userCodeInfo.second.errMsg.c_str());
 			}
 			break;
-		case Event:
+		case MessageType::Event:
 			cJSON_AddNumberToObject(ret, "transID", replaceTransId != 0 ? replaceTransId : msg.getTransID());
 			cJSON_AddNumberToObject(ret, "eventID", msg.getEventID());
 			cJSON_AddNumberToObject(ret, "signatureID", msg.getSignatureID());
 			rpos += 8;
 			break;
-		case SetVarAck:
+		case MessageType::SetVarAck:
 			cJSON_AddNumberToObject(ret, "sessionID", msg.getSessionID());
 			cJSON_AddNumberToObject(ret, "transID", replaceTransId != 0 ? replaceTransId : msg.getTransID());
 			ReadT(msg.getPayload(), errorCode, &rpos);
@@ -533,7 +533,7 @@ namespace Chromium {
 				cJSON_AddStringToObject(ret, "errorMsg", userCodeInfo.second.errMsg.c_str());
 			}
 			break;
-		case GetVarAck:
+		case MessageType::GetVarAck:
 			cJSON_AddNumberToObject(ret, "sessionID", msg.getSessionID());
 			cJSON_AddNumberToObject(ret, "transID", replaceTransId != 0 ? replaceTransId : msg.getTransID());
 			ReadT(msg.getPayload(), errorCode, &rpos);
@@ -577,7 +577,7 @@ namespace Chromium {
 		}
 
 		// 数据部分反序列化 RequestAck & Event有数据部分
-		if (RequestAck == msg.getMessageType())
+		if (MessageType::RequestAck == msg.getMessageType())
 		{   // Request用户自定义部分反序列化
 			// 回调反序列化列表
 			m_ackMutex.lock();
@@ -601,7 +601,7 @@ namespace Chromium {
 			
 			m_AckCallbackList.erase(it);
 		}
-		else if (Event == msg.getMessageType())
+		else if (MessageType::Event == msg.getMessageType())
 		{
 			// Event用户自定义部分反序列化
 			std::map<int, std::vector<CMedthodInterface>*>::iterator iter = m_EventCallbackList.find(msg.getTransID());
@@ -638,7 +638,7 @@ namespace Chromium {
 
 		// 查找序列化结构 有用户定义数据部分的只有 Info 和 Request
 		CMedthodInterface* mi = NULL;
-		if (Request == messageType || Info == messageType)
+		if (MessageType::Request == messageType || MessageType::Info == messageType)
 		{
 			entity_def_struct st = { 0 };
 			GetCJsonObjectValue(pJson, "class", st.class_name, errmsg);
@@ -652,7 +652,7 @@ namespace Chromium {
 			else
 				DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("JsonToBuffer parse method success, entityName:%s, className:%s, methodID:%d, DstMethodName:%s, DstMethodParamNum:%d",
 					st.entity_name, st.class_name, st.methodID, mi->mMethodName.c_str(), mi->mRequestInterpreter.mParamList.size());	//如出错,可对比方法名和变量数量
-			if (Request == messageType) {
+			if (MessageType::Request == messageType) {
 				// 维护回调列表 Request
 				auto transid = json_deal::getIntergerFromCjsonObj(pJson, "transId");
 				if (transid.first == false)
@@ -665,7 +665,7 @@ namespace Chromium {
 				m_ackMutex.unlock();
 			}
 		}
-		else if (Register == messageType)
+		else if (MessageType::Register == messageType)
 		{
 			std::vector<CMedthodInterface>* milist = NULL;
 			entity_def_struct st = { 0 };
@@ -679,7 +679,7 @@ namespace Chromium {
 			milist = mInterpreter->getAllMessageInterface(st.entity_name);
 			m_EventCallbackList.insert(std::pair<int, std::vector<CMedthodInterface>*>(transid.second, milist));
 		}
-		else if (Broadcast == messageType)
+		else if (MessageType::Broadcast == messageType)
 		{
 			ChromiumBroadcast e = {};
 			GetCJsonObjectValue(pJson, "data", e.broadcastJson, errmsg);
@@ -693,7 +693,7 @@ namespace Chromium {
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("json is too long, do not send out sp broadcast!");
 			return std::make_pair(messageType, nullptr);
 		}
-		else if (Event == messageType)
+		else if (MessageType::Event == messageType)
 		{// 维护回调列表 Event
 			struct  GeneralEventStruct
 			{
@@ -734,41 +734,41 @@ namespace Chromium {
 		// 根据不同的request进行序列化
 		switch (messageType) {
 			//info和request由于有其他信息,需要在数据中获得context
-		case Info:
+		case MessageType::Info:
 			SerializeInfo(pJson, data, &wpos, &capacity, mi, errmsg);
 			break;
-		case Request:
+		case MessageType::Request:
 			SerializeRequest(pJson, data, &wpos, &capacity, mi, errmsg);
 			break;
-		case BeginSession:
+		case MessageType::BeginSession:
 			SerializeBeginSession(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case EndSession:
+		case MessageType::EndSession:
 			SerializeEndSession(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case Register:
+		case MessageType::Register:
 			SerializeRegister(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case Unregister:
+		case MessageType::Unregister:
 			SerializeUnregister(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case LogEventMsgType:
+		case MessageType::LogEventMsgType:
 			SerializeLogEvent(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case LogWarnMsgType:
+		case MessageType::LogWarnMsgType:
 			SerializeLogWarn(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case SetVarReq:
+		case MessageType::SetVarReq:
 			SerializeSetVarReq(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;
-		case GetVarReq:
+		case MessageType::GetVarReq:
 			SerializeGetVarReq(pJson, data, &wpos, &capacity, mi, errmsg);
 			SerializeLinkInfo(pJson, data, &wpos, &capacity, errmsg);
 			break;

+ 38 - 2
Module/mod_chromium/CWebsocketServer.cpp

@@ -938,22 +938,34 @@ namespace Chromium {
 			return;
 		}
 
+		auto formatMapToString = [](const std::map<unsigned int, websocketpp::connection_hdl>& mapArr) -> std::string {
+			std::stringstream ss;
+			ss << "[";
+
+			for (auto it : mapArr)
+				ss << "(" << it.first << ", " << (long)it.second.lock().get() << ")";
+			ss << "]";
+			return ss.str();
+		};
+
 		if (!sendBroadCast(m_connection_hdls, m_wsserver, js))
 		{
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("ws server broadcast error");
 		}
 
 		if (!sendBroadCast(m_connection_ws_sm2_hdls, m_ws_sm2_server, js))
-			{
+		{
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("ws_sm2 server broadcast error");
 		}
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("do_sendJsonBroadcast: broadcasts have already send to these terminals, no_security:%s, security:%s",
+			formatMapToString(m_connection_hdls).c_str(), formatMapToString(m_connection_ws_sm2_hdls).c_str());
 		/*
 		if (!sendBroadCast(m_connection_wss_hdls, m_server_wss, js))
 		{
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("wss server broadcast error");
 		}
 		*/
-			}
+	}
 
 	void CWebsocketServer::do_send_msg(int hdl, std::string msg)
 			{
@@ -1125,15 +1137,39 @@ namespace Chromium {
 		std::vector<std::pair<int, int>> sendArr;
 		if (MessageType::Event == msg.getMessageType())
 		{
+
+			auto formatVectorToString = [](const std::vector<std::pair<int, int>>& vec) -> std::string {
+				std::stringstream ss;
+				ss << "[";
+
+				for (size_t i = 0; i < vec.size(); ++i) {
+					ss << "(" << vec[i].first << ", " << vec[i].second << ")";
+					if (i != vec.size() - 1) {
+						ss << ", ";
+					}
+				}
+
+				ss << "]";
+				return ss.str();
+			};
+
 			m_esm->AskProcessEvent(&msg, sendArr);
 			if (sendArr.size() == 0)
 				m_esm->AskProcessEvent(&msg, sendArr);
+			std::string unaccurate_js;
 			for (auto i = sendArr.begin(); i != sendArr.end(); i++)
 			{
 				msg.setTransID(i->first);
 				std::string js = this->m_serializer->BufferToJson(msg, boost::bind(&EntitySessionManager::doWithErrorCode, m_esm, _1, _2), 0);
 				do_sendJson(js, msg.getMessageType(), i->second, id);
+				unaccurate_js = js;
 			}
+			if (sendArr.size() == 0)
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket event sendArr.size() == 0");
+			else
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket event %s send to arr:%s"
+					, unaccurate_js.c_str(), formatVectorToString(sendArr).c_str());
+
 		}
 		else if (MessageType::EndSession == msg.getMessageType())	//session end
 		{

+ 18 - 18
Module/mod_chromium/EntitySessionManager.cpp

@@ -104,39 +104,39 @@ namespace Chromium {
 		RequestProcessType ret = PROCESS_NOTHING;
 
 		switch (msg->getMessageType() & 0x0000FFFF) {
-		case Info:
+		case MessageType::Info:
 			ret = ProcessWithInfo(msg, entityName, hdlID);
 			break;
-		case BeginSession:
+		case MessageType::BeginSession:
 			ret = ProcessWithBeginSession(msg, entityName, hdlID);
 			break;
-		case EndSession:
+		case MessageType::EndSession:
 			ret = ProcessWithEndSession(msg, entityName, hdlID);
 			break;
-		case Request:
+		case MessageType::Request:
 			ret = ProcessWithRequest(msg, entityName, hdlID);
 			break;
-		case Register:
+		case MessageType::Register:
 			ret = ProcessWithRegister(msg, entityName, hdlID);
 			break;
-		case Unregister:
+		case MessageType::Unregister:
 			ret = ProcessWithUnregister(msg, entityName, hdlID);
 			break;
-		case Event:
+		case MessageType::Event:
 			ret = PROCESS_SEND;
 			break;
-		case LogEventMsgType:
+		case MessageType::LogEventMsgType:
 			ret = PROCESS_SEND;
 			break;
-		case LogWarnMsgType:
+		case MessageType::LogWarnMsgType:
 			return PROCESS_SEND;
-		case SetVarReq:
+		case MessageType::SetVarReq:
 			ret = ProcessWithSetVarReq(msg, entityName, hdlID);
 			break;
-		case GetVarReq:
+		case MessageType::GetVarReq:
 			ret = ProcessWithGetVarReq(msg, entityName, hdlID);
 			break;
-		case Broadcast:
+		case MessageType::Broadcast:
 			return PROCESS_NOTHING;
 		default:
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("EntitySessionManager::RequestProcess switch default!");
@@ -144,7 +144,7 @@ namespace Chromium {
 		}
 		int srcTransId = msg->getTransID();
 		StoreSessionReq(srcTransId, entityName);
-		if (Request == (msg->getMessageType() & 0x0000FFFF))
+		if (MessageType::Request == (msg->getMessageType() & 0x0000FFFF))
 			msg->exchangeSessionIdAndTransId();
 
 		return ret;
@@ -518,13 +518,13 @@ namespace Chromium {
 	AckProcessType EntitySessionManager::AckProcess(CMessage* msg, unsigned int& hdlID) {
 		AckProcessType ret = ACKPROCESS_NOTHING;
 		switch (msg->getMessageType()) {
-		case Event:
+		case MessageType::Event:
 			ProcessWithRecvEvent(msg, hdlID);
 			break;
-		case SessionAck:
-		case RequestAck:
-		case GetVarAck:
-		case SetVarAck:
+		case MessageType::SessionAck:
+		case MessageType::RequestAck:
+		case MessageType::GetVarAck:
+		case MessageType::SetVarAck:
 			ProcessWithAck(msg, hdlID);
 			break;
 		default:

+ 96 - 96
Module/mod_chromium/MessageType.cpp

@@ -8,38 +8,38 @@ std::string GetMessageTypeString(int messageType) {
     return #code
 	switch (messageType)
 	{
-		CASE(Info);
-		CASE(BeginSession);
-		CASE(EndSession);
-		CASE(Request);
-		CASE(RequestAck);
-		CASE(SessionAck);
-		CASE(Register);
-		CASE(Unregister);
-		CASE(Event);
-		CASE(LogEventMsgType);
-		CASE(LogWarnMsgType);
-		CASE(SetVarReq);
-		CASE(SetVarAck);
-		CASE(GetVarReq);
-		CASE(GetVarAck);
-		CASE(Broadcast);
-		CASE(GetSession);
-		CASE(WEB_CHROMIUM_MSG_BEGIN);
-		CASE(RegisterNotify);
-		CASE(UnRegisterNotify);
-		CASE(WEB_CHROMIUM_MSG_END);
-		CASE(METHOD_SYSTEM_START);
-		CASE(METHOD_SYSTEM_LOG_DEBUG);
-		CASE(METHOD_SYSTEM_LOG_INFO);
-		CASE(METHOD_SYSTEM_LOG_WARN);
-		CASE(METHOD_SYSTEM_LOG_ERROR);
-		CASE(METHOD_SYSTEM_DETAIL_LOG_DEBUG);
-		CASE(METHOD_SYSTEM_DETAIL_LOG_INFO);
-		CASE(METHOD_SYSTEM_DETAIL_LOG_WARN);
-		CASE(METHOD_SYSTEM_DETAIL_LOG_ERROR);
-		CASE(METHOD_BEIDOU_LOG);
-		CASE(METHOD_SYSTEM_END);
+		CASE(MessageType::Info);
+		CASE(MessageType::BeginSession);
+		CASE(MessageType::EndSession);
+		CASE(MessageType::Request);
+		CASE(MessageType::RequestAck);
+		CASE(MessageType::SessionAck);
+		CASE(MessageType::Register);
+		CASE(MessageType::Unregister);
+		CASE(MessageType::Event);
+		CASE(MessageType::LogEventMsgType);
+		CASE(MessageType::LogWarnMsgType);
+		CASE(MessageType::SetVarReq);
+		CASE(MessageType::SetVarAck);
+		CASE(MessageType::GetVarReq);
+		CASE(MessageType::GetVarAck);
+		CASE(MessageType::Broadcast);
+		CASE(MessageType::GetSession);
+		CASE(MessageType::WEB_CHROMIUM_MSG_BEGIN);
+		CASE(MessageType::RegisterNotify);
+		CASE(MessageType::UnRegisterNotify);
+		CASE(MessageType::WEB_CHROMIUM_MSG_END);
+		CASE(MessageType::METHOD_SYSTEM_START);
+		CASE(MessageType::METHOD_SYSTEM_LOG_DEBUG);
+		CASE(MessageType::METHOD_SYSTEM_LOG_INFO);
+		CASE(MessageType::METHOD_SYSTEM_LOG_WARN);
+		CASE(MessageType::METHOD_SYSTEM_LOG_ERROR);
+		CASE(MessageType::METHOD_SYSTEM_DETAIL_LOG_DEBUG);
+		CASE(MessageType::METHOD_SYSTEM_DETAIL_LOG_INFO);
+		CASE(MessageType::METHOD_SYSTEM_DETAIL_LOG_WARN);
+		CASE(MessageType::METHOD_SYSTEM_DETAIL_LOG_ERROR);
+		CASE(MessageType::METHOD_BEIDOU_LOG);
+		CASE(MessageType::METHOD_SYSTEM_END);
 	default:
 		return "UNKNOWN";
 	}
@@ -48,70 +48,70 @@ std::string GetMessageTypeString(int messageType) {
 std::string GetMessageTypeString(int messageType) {
 	switch (messageType)
 	{
-	case Info:
-		return "Info";
-	case BeginSession:
-		return "BeginSession";
-	case EndSession:
-		return "EndSession";
-	case Request:
-		return "Request";
-	case RequestAck:
-		return "RequestAck";
-	case SessionAck:
-		return "SessionAck";
-	case Register:
-		return "Register";
-	case Unregister:
-		return "Unregister";
-	case Event:
-		return "Event";
-	case LogEventMsgType:
-		return "LogEventMsgType";
-	case LogWarnMsgType:
-		return "LogWarnMsgType";
-	case SetVarReq:
-		return "SetVarReq";
-	case SetVarAck:
-		return "SetVarAck";
-	case GetVarReq:
-		return "GetVarReq";
-	case GetVarAck:
-		return "GetVarAck";
-	case Broadcast:
-		return "Broadcast";
-	case GetSession:
-		return "GetSession";
-	case WEB_CHROMIUM_MSG_BEGIN:
-		return "WEB_CHROMIUM_MSG_BEGIN";
-	case RegisterNotify:
-		return "RegisterNotify";
-	case UnRegisterNotify:
-		return "UnRegisterNotify";
-	case WEB_CHROMIUM_MSG_END:
-		return "WEB_CHROMIUM_MSG_END";
-	case METHOD_SYSTEM_START:
-		return "METHOD_SYSTEM_START";
-	case METHOD_SYSTEM_LOG_DEBUG:
-		return "METHOD_SYSTEM_LOG_DEBUG";
-	case METHOD_SYSTEM_LOG_INFO:
-		return "METHOD_SYSTEM_LOG_INFO";
-	case METHOD_SYSTEM_LOG_WARN:
-		return "METHOD_SYSTEM_LOG_WARN";
-	case METHOD_SYSTEM_LOG_ERROR:
-		return "METHOD_SYSTEM_LOG_ERROR";
-	case METHOD_SYSTEM_DETAIL_LOG_DEBUG:
-		return "METHOD_SYSTEM_DETAIL_LOG_DEBUG";
-	case METHOD_SYSTEM_DETAIL_LOG_INFO:
-		return "METHOD_SYSTEM_DETAIL_LOG_INFO";
-	case METHOD_SYSTEM_DETAIL_LOG_WARN:
-		return "METHOD_SYSTEM_DETAIL_LOG_WARN";
-	case METHOD_SYSTEM_DETAIL_LOG_ERROR:
-		return "METHOD_SYSTEM_DETAIL_LOG_ERROR";
-	case METHOD_BEIDOU_LOG:
-		return "METHOD_BEIDOU_LOG";
-	case METHOD_SYSTEM_END:
-		return "METHOD_SYSTEM_END";
+	case MessageType::Info:
+		return "MessageType::Info";
+	case MessageType::BeginSession:
+		return "MessageType::BeginSession";
+	case MessageType::EndSession:
+		return "MessageType::EndSession";
+	case MessageType::Request:
+		return "MessageType::Request";
+	case MessageType::RequestAck:
+		return "MessageType::RequestAck";
+	case MessageType::SessionAck:
+		return "MessageType::SessionAck";
+	case MessageType::Register:
+		return "MessageType::Register";
+	case MessageType::Unregister:
+		return "MessageType::Unregister";
+	case MessageType::Event:
+		return "MessageType::Event";
+	case MessageType::LogEventMsgType:
+		return "MessageType::LogEventMsgType";
+	case MessageType::LogWarnMsgType:
+		return "MessageType::LogWarnMsgType";
+	case MessageType::SetVarReq:
+		return "MessageType::SetVarReq";
+	case MessageType::SetVarAck:
+		return "MessageType::SetVarAck";
+	case MessageType::GetVarReq:
+		return "MessageType::GetVarReq";
+	case MessageType::GetVarAck:
+		return "MessageType::GetVarAck";
+	case MessageType::Broadcast:
+		return "MessageType::Broadcast";
+	case MessageType::GetSession:
+		return "MessageType::GetSession";
+	case MessageType::WEB_CHROMIUM_MSG_BEGIN:
+		return "MessageType::WEB_CHROMIUM_MSG_BEGIN";
+	case MessageType::RegisterNotify:
+		return "MessageType::RegisterNotify";
+	case MessageType::UnRegisterNotify:
+		return "MessageType::UnRegisterNotify";
+	case MessageType::WEB_CHROMIUM_MSG_END:
+		return "MessageType::WEB_CHROMIUM_MSG_END";
+	case MessageType::METHOD_SYSTEM_START:
+		return "MessageType::METHOD_SYSTEM_START";
+	case MessageType::METHOD_SYSTEM_LOG_DEBUG:
+		return "MessageType::METHOD_SYSTEM_LOG_DEBUG";
+	case MessageType::METHOD_SYSTEM_LOG_INFO:
+		return "MessageType::METHOD_SYSTEM_LOG_INFO";
+	case MessageType::METHOD_SYSTEM_LOG_WARN:
+		return "MessageType::METHOD_SYSTEM_LOG_WARN";
+	case MessageType::METHOD_SYSTEM_LOG_ERROR:
+		return "MessageType::METHOD_SYSTEM_LOG_ERROR";
+	case MessageType::METHOD_SYSTEM_DETAIL_LOG_DEBUG:
+		return "MessageType::METHOD_SYSTEM_DETAIL_LOG_DEBUG";
+	case MessageType::METHOD_SYSTEM_DETAIL_LOG_INFO:
+		return "MessageType::METHOD_SYSTEM_DETAIL_LOG_INFO";
+	case MessageType::METHOD_SYSTEM_DETAIL_LOG_WARN:
+		return "MessageType::METHOD_SYSTEM_DETAIL_LOG_WARN";
+	case MessageType::METHOD_SYSTEM_DETAIL_LOG_ERROR:
+		return "MessageType::METHOD_SYSTEM_DETAIL_LOG_ERROR";
+	case MessageType::METHOD_BEIDOU_LOG:
+		return "MessageType::METHOD_BEIDOU_LOG";
+	case MessageType::METHOD_SYSTEM_END:
+		return "MessageType::METHOD_SYSTEM_END";
 	default:
 		return "UNKNOWN";