示例#1
0
        protected virtual void HeartBeat(Object sender, string argJson)
        {
            var  playerIdStr = JSONSerilizer.GetJsonNode(argJson, "playerId");
            Guid playerId    = Guid.Empty;

            if (Guid.TryParse(playerIdStr, out playerId))
            {
                OnlineStateObject obj = new OnlineStateObject {
                    LastHeartBeatTime = DateTime.Now, OnlineWorkObject = sender
                };
                _connectingClientDic.AddOrUpdate(playerId, obj, (key, value) => obj);
            }
        }
 public string PlayerReady(string args)
 {
     try
     {
         var playerIdStr = JSONSerilizer.GetJsonNode(args, "playerId");
         var room        = roomManager.GetRoomByPlayerId(Guid.Parse(playerIdStr));
         room.PlayerGetReady(Guid.Parse(playerIdStr));
         return("{ 'IsSuccess':1}");
     }
     catch (Exception ex)
     {
         return("{ 'IsSuccess':0,'msg':'" + ex.Message + "'}");
     }
 }
 public string JoinGameRoom(string args)
 {
     try
     {
         var    playerIdStr    = JSONSerilizer.GetJsonNode(args, "playerId");
         var    roomNum        = JSONSerilizer.GetJsonNode(args, "roomNum");
         string hasJoinPlayers = roomManager.JoinRoom(Guid.Parse(playerIdStr), Convert.ToInt32(roomNum));
         //SendJoin();
         return("{ 'IsSuccess':1,'HasJoinPlayer':'" + hasJoinPlayers + "'}");
     }
     catch (Exception ex)
     {
         return("{ 'IsSuccess':0,'msg':'" + ex.Message + "'}");
     }
 }
        public string GetBankerIndex(string args)
        {
            try
            {
                var playerIdStr = JSONSerilizer.GetJsonNode(args, "playerId");

                var room = roomManager.GetRoomByPlayerId(Guid.Parse(playerIdStr));

                int bankerIndex = room.GetBankerIndex();
                return("{ 'IsSuccess':1,'BankerIndex':" + bankerIndex + "}");
            }
            catch (Exception ex)
            {
                return("{ 'IsSuccess':0,'msg':'" + ex.Message + "'}");
            }
        }
        public string GetPlayersCards(string args)
        {
            try
            {
                var playerIdStr = JSONSerilizer.GetJsonNode(args, "playerId");

                var room = roomManager.GetRoomByPlayerId(Guid.Parse(playerIdStr));

                var cards = room.GetPlayerCards(Guid.Parse(playerIdStr));
                return("{'cards':{'ActionName':'GetCards','card1':'" + cards[0] + "','':'" + cards[1] + "'}}");
            }
            catch (Exception ex)
            {
                return("{ 'IsSuccess':0,'msg':'" + ex.Message + "'}");
            }
        }
示例#6
0
        protected virtual void OnRecvMsg(Object sender, string contentMsg)
        {
            try
            {
                var contentData = JSONSerilizer.GetJsonNode(contentMsg, "NetWorkDataContent");
                var name        = JSONSerilizer.GetJsonNode(contentData, "ActionName");
                var args        = JSONSerilizer.GetJsonNode(contentData, "ActionPara");

                Type type         = GetType();
                var  methodsAll   = type.GetMethods(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
                var  targetMethod = methodsAll.FirstOrDefault(d =>
                {
                    var actionAtt = d.GetCustomAttributes(typeof(NetActionAttribute), true);
                    if (actionAtt.Length > 0)
                    {
                        var actionname = ((NetActionAttribute)actionAtt[0]).ActionName;
                        return(actionname.Equals(name));
                    }
                    else
                    {
                        return(false);
                    }
                });
                //TODO:将方法返回值输出发送到客户端
                if (targetMethod != null)
                {
                    if (name.Equals("HeartBeat"))//心跳包单独处理。
                    {
                        targetMethod.Invoke(this, new object[] { sender, args });
                    }
                    else
                    {
                        Object resultJson = targetMethod.Invoke(this, new object[] { args });
                        netWork.SendMsg(sender, resultJson.ToString());//向客户端返回结果。
                    }
                }
            }
            catch (Exception ex)
            {
                // throw ex;
            }
        }
 public string PlayerBetOn(string args)
 {
     try
     {
         var     playerIdStr = JSONSerilizer.GetJsonNode(args, "playerId");
         var     betStyle    = (BetStyle)Convert.ToInt32(JSONSerilizer.GetJsonNode(args, "betStyleInt"));
         var     betValue    = Convert.ToInt32(JSONSerilizer.GetJsonNode(args, "betValueInt"));
         Betting betting     = new Betting()
         {
             BetValue = betValue, Style = betStyle
         };
         var room = roomManager.GetRoomByPlayerId(Guid.Parse(playerIdStr));
         room.PlayerBetOn(Guid.Parse(playerIdStr), betting);
         return("{ 'IsSuccess':1}");
     }
     catch (Exception ex)
     {
         return("{ 'IsSuccess':0,'msg':'" + ex.Message + "'}");
     }
 }