// _////////////////////////////////////////////////_ _____ Emit _____ Action _____ public void ActionGameObj(NodeGameBase gameObj) { Ag.LogIntense(2, true); Ag.LogString(mName + " ActionGameObj Emit ... \t\t\t\t <<< Action :: Game >>>"); if (gameObj.msgType != "REVERSE") { arrGameSend.Add(gameObj); } SendGameMsg(gameObj); Ag.LogIntense(1, false); }
// _////////////////////////////////////////////////_ _///////////////////////_ _____ Send in Dic _____ GameMsg _____ public void SendGameMsg(NodeGameBase pObj) { string content = JsonMapper.ToJson(pObj); Ag.LogString(" SendGameMsg :: content >> " + content); content = content.DodgeBackSlashQuoMark(); Ag.LogStartWithStr(2, mName + " SendGameMsg >>> " + content); Ag.LogString(" Message Length >>> content.Length : " + content.Length); Dictionary <string, string> aDic = new Dictionary <string, string> (); aDic ["msgType"] = pObj.msgType; aDic ["content"] = content; MySocket.Emit("GAMEMSG", aDic); TimerSet(); }
void ResGameMsg(IMessage theData) { // {"name":"RES_GAMEMSG","args":[{"status":"FAIL","code":"ERR_NOOPPONENT"}] TimerStop(); Ag.LogStartWithStr(2, mName + " ResGameMsg Rcvd ... " + IsGameHost.Value.ShowBool("I am ", "Host", "Vstr") + "\t\t\t\t >>> Re Action <<<"); JSONNode argsJ = GetArguments(theData, mName); try { gameMsgCode = argsJ ["code"]; } catch { Ag.LogString(mName + " ResGameMsg :: No code "); } if (NoOpponentProcess(gameMsgCode)) { return; } JSONNode gData = argsJ ["data"];// JsonMapper.ToObject (argsJ ["data"]); string msgType = gData ["msgType"]; gData = gData ["content"]; string dodgeStr = gData.ToString().DodgeBackSlashQuoMark(); (" ResGameMsg :: dodgeStr ::: " + dodgeStr).HtLog(); dodgeStr = dodgeStr.Substring(1, dodgeStr.Length - 2); gData = JSON.Parse(dodgeStr); (" ResGameMsg :: gData ::: " + gData.ToString()).HtLog(); Ag.LogString(mName + " msgType >>>>> " + msgType + " <<<<< "); NodeGameBase theObj = null; switch (msgType) { case "GameStartMsg": GameStartMsg.Enem = true; return; case "SceneLoadComplete": SceneLoadComplete.Enem = true; return; case "RematchApply": ReMatchSent.Enem = true; return; case "RematchRefuse": ReMatchRefuseSend.Enem = true; return; case "AmUser": gData = JSON.Parse(dodgeStr.RecoverFromDodgeStr("@#@")); Ag.LogString(" ResGameMsg :: " + gData.ToString()); EnemyUser = new AmUser(true, "DodgeDeviceID"); EnemyUser = (new NodeAmUser()).ParseFrom(gData); " NodeSocket :: ResGameMsg :: case ''AmUser'' >>>>> Parsing Ended ..... ".HtLog(); //AgStt.IsGaming = EnemyUser.Parsed = true; //AgStt.IsGaming = true; Ag.GameStt.EnemyInfoExchangeParsed(" AmUser "); if (!IsGameHost.Value) { ExchangeInfo(); } //EnemyUser.ShowMyself (); return; case "PREPARE": AgStt.EnemyNodePrepareObj = new NodeGamePrepare(); AgStt.MyNodePrepareObj = new NodeGamePrepare(); AgStt.EnemyNodePrepareObj.Parse(gData); AgStt.EnemyNodePrepareObj.ShowMyself(); if (!IsGameHost.Value) { if (AgStt.EnemyNodePrepareObj.sessionKey != null && AgStt.EnemyNodePrepareObj.sessionKey.Length > 5) { sessionKey = MyUser.WAS.GameSessionKey = AgStt.EnemyNodePrepareObj.sessionKey; } ActionGamePrepare(AgStt.MyNodePrepareObj); } return; case "TURN_RSLT": Ag.LogString(mName + " Parsing NodeGameTurnRslt Object "); theObj = new NodeGameTurnRslt(); ((NodeGameTurnRslt)theObj).Parse(gData); //theObj = JsonMapper.ToObject<NodeGameTurnRslt> (gData.ToJson ()); if (!IsGameHost.Value) // 받는 부분 { sessionKey = ((NodeGameTurnRslt)theObj).sessionKey; } Ag.LogString(mName + " Parsing Data" + theObj.ToString()); Ag.LogString(mName + " Parsing NodeGameTurnRslt Object ... End "); break; case "HOST_SEND": Ag.LogString(mName + " Parsing Game Void Received ... End "); Ag.LogIntense(2, false); //theObj = JsonMapper.ToObject<NodeGameHostSend> (gData.ToJson ()); return;//break; case "REVERSE": Ag.LogString(mName + " ResGameMsg REVERSE ... End "); dlgtReverseHostVstr(); return; case "GOLDENBALL": Ag.LogString(mName + " ResGameMsg GOLDENBALL " + gData ["BallKind"].ToString()); Ag.LogString(mName + " ResGameMsg GOLDENBALL ... End "); return; } Ag.LogString(mName + " ResGameMsg Rcvd ... End "); arrGameRcvd.Add(theObj); dlgtGameGotResult(); Ag.LogIntense(2, false); }