Beispiel #1
0
    public IEnumerator LoginGame(string access_token)
    {
        //string temp = $"http://api.tianyuonline.cn/api/extendaccount?sid={access_token}&passwd=wuditianyu&types=1&cv=1.0.1&udid={SystemInfo.deviceUniqueIdentifier}&mc=2000";
        string temp = string.Format("http://api.tianyuonline.cn/api/extendaccount?sid={0}&passwd=wuditianyu&types=1&cv=1.0.1&udid={1}&mc=2000"
                                    , access_token, SystemInfo.deviceUniqueIdentifier);

        WWW nwww = new WWW(temp);

        /******拉选服前*********/

        yield return(nwww);

        if (nwww.isDone && string.Empty != nwww.text)
        {
            string text    = nwww.text;
            object jsonobj = Jsontext.ReadeData(text);
            if (jsonobj != null)
            {
                Dictionary <string, object> aobj = (Dictionary <string, object>)jsonobj;
                if (aobj != null)
                {
                    Debug.Log("1111111");
                }
                else
                {
                    Debug.Log("22222");
                }
            }
        }
        else
        {
            Debug.Log("333333");
        }
    }
Beispiel #2
0
    public void IOSGameGameCenterVerifySuccess(string result)
    {
        PrintLog("gamecenterlogincallback:" + result);
        Dictionary <string, object> dict = (Dictionary <string, object>)Jsontext.ReadeData(result);

        //string url = HttpUtility.UrlEncode("publicKeyUrl");

        //PrintLog($"encode后的url   {url}");

        //System.Text.StringBuilder stringbuilder = Jsontext.WriteData(dict);
        //stringbuilder.Append("\0");

        //PrintLog($"要发送的json  {stringbuilder.ToString()}");



        string sigEncode = HttpUtility.UrlEncode((string)dict["signature"]);

        dict["signature"] = sigEncode;

        System.Text.StringBuilder sb = Jsontext.WriteData(dict);
        sb.Append("\0");

        // TODO 向游戏服务器发送请求登录消息 [2020/1/18 14:40:41 BingLau]
        StartCoroutine(LoginGame(sb.ToString()));
    }
Beispiel #3
0
    //http请求登陆消息
    public IEnumerator Login()
    {
        string[] arg = { account.text, passWord.text, }; // { account.text, passWord.text, };
        string   temp;                                   // = string.Format( url , arg );

        if (DataDefine.isOutLine)
        {
            temp = DataDefine.LoginOutLineUrl + "?account=" + account.text + "&passwd=" + passWord.text + "&types=" + 1 + "&cv=" + DataDefine.ClientVersion + "&udid=" + SystemInfo.deviceUniqueIdentifier + "&mc=" + DataDefine.mainchannel;
        }
        else
        {
            temp = DataDefine.LoginUrl + "?account=" + account.text + "&passwd=" + passWord.text + "&types=" + 1 + "&cv=" + DataDefine.ClientVersion + "&udid=" + SystemInfo.deviceUniqueIdentifier + "&mc=" + DataDefine.mainchannel;
        }

        nwww = new WWW(temp);
        yield return(nwww);

        if (nwww == null || !this.nwww.isDone)
        {
            yield return(nwww);
        }

        string text = nwww.data;
        Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text);

        if (aobj != null)
        {
            byte   corde   = byte.Parse(aobj["ret"].ToString());
            string message = aobj["desc"].ToString();
            if (aobj.ContainsKey("actime"))
            {
                serverMgr.GetInstance().SetCreateAccountTime(aobj["actime"].ToString(), false);
            }

            if (corde == 1)
            {
                UIPromptBox.Instance.ShowLabel(message);
            }
            else
            {
                Hide();
                Control.HideGUI(this.GetUIKey());
                serverMgr.GetInstance().SetMobile(long.Parse(aobj["account"].ToString()));



                // Dictionary<string, object>[] data = (Dictionary<string, object>[])aobj["host"];
                //InitServerList(data);

                //serverMgr.GetInstance().gamedata.Load(account.value)
                serverMgr.GetInstance().SetAccount(account.text);//SetAccount(account.text);
                serverMgr.GetInstance().SetPassword(passWord.text);
                //  Control.ShowGUI(UIPanleID.UI_SelectServer, EnumOpenUIType.DefaultUIOrSecond);
                StartLandingShuJu.GetInstance().ServerList();
                serverMgr.GetInstance().saveData();
            }
        }
    }
    /// <summary>
    /// 发送ping包
    /// </summary>
    /// <param name="data"></param>
    public void AsyncSendPing()
    {
        IDictionary <string, object> packet = new Dictionary <string, object>();

        packet.Add("msgid", NetProtocol.PING);
        CWritePacket  writePacket = new CWritePacket(NetProtocol.PING);
        StringBuilder builder     = Jsontext.WriteData(packet);
        string        json_Str    = builder.ToString();

        writePacket.WriteString(json_Str);
        m_Client.BeginSend(writePacket.GetPacketByte(), writePacket.GetPacketByte().Length, new AsyncCallback(SendCallback), null);
    }
Beispiel #5
0
    public IEnumerator Register()
    {
        string[] arg = { account.text, password.text, DataDefine.ClientVersion, SystemInfo.deviceUniqueIdentifier, DataDefine.mainchannel.ToString() };
        string   temp;// = string.Format( url , arg );

        if (DataDefine.isOutLine)
        {
            temp = string.Format(DataDefine.RegistOutLineUrl, arg);
        }
        else
        {
            temp = string.Format(DataDefine.RegistLineUrl, arg);
        }


        this.nwww = new WWW(temp);
        yield return(nwww);

        if (this.nwww == null || !this.nwww.isDone)
        {
            yield return(nwww);
        }

        string text = this.nwww.text;

        Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text);

        byte   corde   = byte.Parse(aobj["ret"].ToString());
        string message = aobj["desc"].ToString();

        print("值" + corde);

        if (corde == 1)
        {
            //UIPromptBox.Instance.ShowLabel(message);
            Control.ShowGUI(UIPanleID.UIPromptBox, EnumOpenUIType.DefaultUIOrSecond, false, message);
        }
        else
        {
            // Dictionary<string , object> data = ( Dictionary<string , object> ) aobj [ "data" ];
            // Dictionary<string, object>[] serverarr = (Dictionary<string, object>[])aobj["host"];

            //  InitServerList(serverarr);

            Control.HideGUI(this.GetUIKey());
            serverMgr.GetInstance().SetAccount(account.text);              //SetAccount(account.text);
            serverMgr.GetInstance().SetPassword(password.text);
            serverMgr.GetInstance().SetMobile(long.Parse(aobj["account"].ToString()));
            // Control.ShowGUI(GameLibrary.UI_SelectServer);
            StartLandingShuJu.GetInstance().ServerList();
            //  serverMgr.GetInstance().saveData();
        }
    }
    /// <summary>
    /// 登录游戏
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="parameter"></param>
    public CWritePacket InputLogin(string account)
    {
        IDictionary <string, object> packet = new Dictionary <string, object>();

        packet.Add("msgid", NetProtocol.LOGIN_REQ);
        packet.Add("account", account);
        CWritePacket  writePacket = new CWritePacket(NetProtocol.LOGIN_REQ);
        StringBuilder builder     = Jsontext.WriteData(packet);
        string        json_Str    = builder.ToString();

        writePacket.WriteString(json_Str);
        return(writePacket);
    }
    /// <summary>
    /// 参加匹配
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="parameter"></param>
    public CWritePacket InputMatch(int matchType)
    {
        IDictionary <string, object> packet = new Dictionary <string, object>();

        packet.Add("msgid", NetProtocol.MATCH_REQ);
        packet.Add("playerId", GameData.m_CurrentRoleId);
        packet.Add("matchType", matchType);
        CWritePacket  writePacket = new CWritePacket(NetProtocol.MATCH_REQ);
        StringBuilder builder     = Jsontext.WriteData(packet);
        string        json_Str    = builder.ToString();

        writePacket.WriteString(json_Str);
        return(writePacket);
    }
Beispiel #8
0
    //获取服务器列表
    public IEnumerator LoadServerlist()
    {
        long[] arg = { serverMgr.GetInstance().GetMobile(), 1 };
        string temp;// = string.Format( url , arg );

        if (DataDefine.isOutLine)
        {
            //temp = DataDefine.ServerListOutLineUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString() + "&cv=" + DataDefine.ClientVersion+"&mc="+1002;
            temp = DataDefine.ServerListOutLineUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString() + "&cv=" + DataDefine.ClientVersion + "&mc=" + 1002;
        }
        else
        {
            temp = DataDefine.ServerListUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString() + "&cv=" + DataDefine.ClientVersion + "&mc=" + 1002;
        }
        this.mWWW = new WWW(temp);

        yield return(mWWW);

        if (this.mWWW == null || !this.mWWW.isDone)
        {
            yield return(mWWW);
        }
        string text = this.mWWW.data;

        if (this.mWWW.error == null)
        {
            //读json串
            Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text);
            int ret = int.Parse(aobj["ret"].ToString());
            if (ret == 0)
            {
                Dictionary <string, object>   servernew  = aobj["new"] as Dictionary <string, object>;
                Dictionary <string, object>[] serverarr  = aobj["host"] as Dictionary <string, object>[];
                Dictionary <string, object>   serverlast = aobj["last"] as Dictionary <string, object>;

                if (null != serverlast)
                {
                    GetServedrDate(serverlast);
                }
                else
                {
                    GetServedrDate(servernew);
                }

                SetServerList(serverarr);
                //  UISelectServer.Instance.InitServerList();
            }
        }
    }
    /// <summary>
    /// 准备操作
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="parameter"></param>
    public CWritePacket InputReady()
    {
        IDictionary <string, object> packet = new Dictionary <string, object>();

        packet.Add("msgid", NetProtocol.READY);
        packet.Add("playerId", GameData.m_CurrentRoleId);
        packet.Add("heroId", GameData.m_HeroId);
        packet.Add("mobaKey", GameData.m_MobaKey);
        CWritePacket  writePacket = new CWritePacket(NetProtocol.READY);
        StringBuilder builder     = Jsontext.WriteData(packet);
        string        json_Str    = builder.ToString();

        writePacket.WriteString(json_Str);
        return(writePacket);
    }
Beispiel #10
0
    public IEnumerator VersionLoad()
    {
        long[] arg = { serverMgr.GetInstance().GetMobile(), 1 };
        string temp;// = string.Format( url , arg );

        if (DataDefine.isOutLine)
        {
            temp = DataDefine.outserverip + "version.txt";//DataDefine.ServerListOutLineUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString();
        }
        else
        {
            temp = DataDefine.inserverip + "version.txt";//DataDefine.ServerListUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString();
        }
        nWWW = new WWW(temp);
        yield return(nWWW);

        if (nWWW == null || !nWWW.isDone)
        {
            yield return(nWWW);
        }
        string text = nWWW.data;

        if (nWWW.error == null)
        {
            Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text);
            string serverversion             = aobj["version"].ToString();
            //string[] items = text.Split('=');

            if (serverversion.Equals(DataDefine.version))
            {
                // Debug.Log("版本一致"+ items[1]+"==>"+ DataDefine.version);
                if (UIPromptBox.Instance != null)
                {
                    UIPromptBox.Instance.Hide();
                }
            }
            else
            {
                //if (UIPromptBox.Instance != null)
                //{
                //    UIPromptBox.Instance.ShowLabel("您的版本号与服务器不一致,请更新新包");
                //}
                Control.ShowGUI(UIPanleID.UIPromptBox, EnumOpenUIType.DefaultUIOrSecond, false, "您的版本号与服务器不一致,请更新新包");
                // Debug.Log("版本不一致" + items[1] + "==>" + DataDefine.version);
            }
        }
    }
Beispiel #11
0
    void Send(Dictionary <string, object> newpacket, CWritePacket packet)
    {
        System.Text.StringBuilder stringbuilder = Jsontext.WriteData(newpacket);
        stringbuilder.Append("\0");

        string json_s = stringbuilder.ToString();

        if (DataDefine.isEFS == 1)
        {
            //加密处理
            json_s = packet.Compress(json_s, DataDefine.datakey);
        }
        packet.WriteString(json_s);
        // Debug.Log( json_s );

        SendPacket(packet, C2SMessageType.Active);
    }
Beispiel #12
0
    public void ReadData()
    {
        string tempstr = ReadString();
        object obj     = Jsontext.ReadeData(tempstr);

        if (obj == null)
        {
            return;
        }
        data = obj as Dictionary <string, object>;
        if (data != null)
        {
            if (data.ContainsKey("msgid"))
            {
                m_nPacketID = data.TryGetUint("msgid");
            }
        }
    }
Beispiel #13
0
        public void LoadJsonArr(string jsonString)
        {
            object[] json = Jsontext.ReadeData(jsonString) as object[];

            for (int i = 0; i < json.Length; i++)
            {
                Dictionary <string, object> node = (Dictionary <string, object>)json[i];
                long typeId = long.Parse(node["id"].ToString());
                if (mDataNodeList == null)
                {
                    mDataNodeList = new Dictionary <long, T>();
                }
                if (!mDataNodeList.ContainsKey(typeId))
                {
                    T dataNode = new T();
                    //  LitJson.JsonMapper.ToObject<T>(strLine,false);
                    dataNode.parseJson(node);
                    mDataNodeList.Add(typeId, dataNode);
                }
            }
        }
Beispiel #14
0
        public void LoadJson(string jsonString)
        {
            Dictionary <string, object> json = (Dictionary <string, object>)Jsontext.ReadeData(jsonString);

            foreach (string jsonnode in json.Keys)
            {
                //  Dictionary<string, object> nodelist = (Dictionary<string, object>)json[jsonnode];
                long typeId = long.Parse(jsonnode);
                if (mDataNodeList == null)
                {
                    mDataNodeList = new Dictionary <long, T>();
                }
                if (!mDataNodeList.ContainsKey(typeId))
                {
                    T dataNode = new T();
                    //  LitJson.JsonMapper.ToObject<T>(strLine,false);
                    dataNode.parseJson(json[jsonnode]);
                    mDataNodeList.Add(typeId, dataNode);
                }
            }
        }
    public void LoadJson(string jsonString)
    {
        Dictionary <string, object> json = (Dictionary <string, object>)Jsontext.ReadeData(jsonString);

        foreach (string jsonnode in json.Keys)
        {
            long typeId = 0;
            typeId   = long.Parse(jsonnode);
            jsonNode = jsonnode;

            if (mDataNodeList == null)
            {
                mDataNodeList = new Dictionary <long, T>();
            }
            if (!mDataNodeList.ContainsKey(typeId))
            {
                T dataNode = new T();
                dataNode.ParseJson(json[jsonnode]);
                mDataNodeList.Add(typeId, dataNode);
            }
        }
    }
Beispiel #16
0
    protected void PacketDictAndSend(UInt32 msgID, Dictionary <string, object> newpacket, C2SMessageType c2sType = C2SMessageType.PASVWait)
    {
        CWritePacket packet = new CWritePacket(msgID);

        System.Text.StringBuilder stringbuilder = Jsontext.WriteData(newpacket);
        stringbuilder.Append("\0");

        string json_s = stringbuilder.ToString();

        if (DataDefine.isEFS == 1)
        {
            //加密处理
            json_s = packet.Compress(json_s, DataDefine.datakey);
        }
        packet.WriteString(json_s);

        if (DataDefine.isLogMsgDetail)
        {
            Debug.Log("Send msgDetail: " + json_s);
        }

        SendPacket(packet, c2sType);
    }
    /// <summary>
    /// 输入操作
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="parameter"></param>
    public CWritePacket InputCmd(Cmd cmd, string parameter = null)
    {
        FrameKeyData frameKeyData = new FrameKeyData();

        frameKeyData.m_KeyDataList = new List <KeyData>();
        KeyData data = new KeyData();

        data.m_RoleId    = GameData.m_CurrentRoleId;
        data.m_Cmd       = (int)cmd;
        data.m_Parameter = parameter;
        frameKeyData.m_KeyDataList.Add(data);
        Dictionary <string, object> packet = new Dictionary <string, object>();

        packet.Add("msgid", NetProtocol.SYNC_KEY);
        packet.Add("roleid", GameData.m_CurrentRoleId);
        packet.Add("mobaKey", GameData.m_MobaKey);
        packet.Add("keydatalist", frameKeyData.m_KeyDataList);
        CWritePacket  writePacket = new CWritePacket(NetProtocol.SYNC_KEY);
        StringBuilder builder     = Jsontext.WriteData(packet);
        string        json_Str    = builder.ToString();

        writePacket.WriteString(json_Str);
        return(writePacket);
    }
Beispiel #18
0
    /// <summary>
    /// 获取排行榜信息
    /// </summary>
    /// <param name="packet"></param>
    /// <returns></returns>
    public bool RankListHandle(CReadPacket packet)
    {
        Debug.Log("ranklist返回");
        Dictionary <string, object> data = packet.data;

        int resolt = int.Parse(data["ret"].ToString());

        if (resolt == 0)
        {
            int currentValue  = 0;
            int currentRank   = 0;
            int yesterdayRank = 0;
            currentRank = int.Parse(data["myRank"].ToString());//自己的当前排名
            playerData.GetInstance().playerRankData.rankListType = (RankListType)data["typeid"];
            if (data["rInfo"] != null)
            {
                object[][] rankInfoList = data["rInfo"] as object[][];
                switch ((RankListType)data["typeid"])
                {
                //case RankListType.Fight:
                //    playerData.GetInstance().playerRankData.fightList.Clear();
                //    break;
                //case RankListType.StarSum:
                //    playerData.GetInstance().playerRankData.starSumList.Clear();
                //    break;
                //case RankListType.DiamondUser:
                //    playerData.GetInstance().playerRankData.diamondUserList.Clear();
                //    break;
                //case RankListType.BestFourPersons:
                //    playerData.GetInstance().playerRankData.bestFourPersonsList.Clear();
                //    break;
                //case RankListType.Fortune:
                //    playerData.GetInstance().playerRankData.fortuneList.Clear();
                //    break;
                //case RankListType.YesterdayRank:
                //    playerData.GetInstance().playerRankData.yesterdayList.Clear();
                //    break;
                case RankListType.Level:
                    if (playerData.GetInstance().playerRankData.levelList.Count >= 20)
                    {
                        playerData.GetInstance().playerRankData.levelList.Clear();
                    }
                    break;

                case RankListType.RealTimeRank:
                    if (playerData.GetInstance().playerRankData.realTimeRankList.Count >= 20)
                    {
                        playerData.GetInstance().playerRankData.realTimeRankList.Clear();
                    }
                    break;

                default:
                    break;
                }
                for (int i = 0; i < rankInfoList.Length; i++)
                {
                    RankListData rankListData = new RankListData();
                    if (int.Parse(rankInfoList[i][1].ToString()) != 0)
                    {
                        rankListData.currentRank = int.Parse(rankInfoList[i][0].ToString());//当前排名
                        rankListData.playerId    = int.Parse(rankInfoList[i][1].ToString());
                        rankListData.name        = rankInfoList[i][2].ToString();
                        rankListData.iconId      = long.Parse(rankInfoList[i][3].ToString());
                        rankListData.iconBoxId   = long.Parse(rankInfoList[i][4].ToString());
                        rankListData.rankValue   = int.Parse(rankInfoList[i][5].ToString()); //战斗力
                        rankListData.playerLv    = int.Parse(rankInfoList[i][6].ToString()); //角色等级
                    }

                    if (!string.IsNullOrEmpty(rankInfoList[i][7].ToString()))
                    {
                        string     arenas = rankInfoList[i][7].ToString();
                        object  [] aa     = Jsontext.ReadeData(arenas) as object[];
                        for (int j = 0; j < aa.Length; j++)
                        {
                            string[]     str      = aa[j] as string[];
                            RankHeroList heroList = new RankHeroList();
                            heroList.iconId1     = long.Parse(str[0]);
                            heroList.lv          = int.Parse(str[1]);
                            heroList.star        = int.Parse(str[2]);
                            heroList.iconIdFrame = int.Parse(str[3]);
                            rankListData.arenaHeroList.Add(heroList);
                        }
                    }
                    switch ((RankListType)data["typeid"])
                    {
                    //case RankListType.Fight:
                    //    playerData.GetInstance().playerRankData.fightList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.fight = currentValue;
                    //    playerData.GetInstance().playerRankData.fightCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.fightYesterdayRank = yesterdayRank;
                    //    break;
                    //case RankListType.StarSum:
                    //    playerData.GetInstance().playerRankData.starSumList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.startSum = currentValue;
                    //    playerData.GetInstance().playerRankData.starttSumCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.starttSumYesterday = yesterdayRank;
                    //    break;
                    //case RankListType.DiamondUser:
                    //    playerData.GetInstance().playerRankData.diamondUserList.Add(rankListData);
                    //    break;
                    //case RankListType.BestFourPersons:
                    //    playerData.GetInstance().playerRankData.bestFourPersonsList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.bestfourCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.bestfourYesterday = yesterdayRank;
                    //    break;
                    //case RankListType.Fortune:
                    //    playerData.GetInstance().playerRankData.fortuneList.Add(rankListData);
                    //    break;
                    //case RankListType.YesterdayRank:
                    //    playerData.GetInstance().playerRankData.yesterdayList.Add(rankListData);
                    //    playerData.GetInstance().playerRankData.yestterday = currentValue;
                    //    playerData.GetInstance().playerRankData.yestterdayCurrentRank = currentRank;
                    //    playerData.GetInstance().playerRankData.yestterday_yes = yesterdayRank;
                    //    break;
                    case RankListType.Level:
                        playerData.GetInstance().playerRankData.levelList.Add(rankListData);
                        playerData.GetInstance().playerRankData.lv = currentValue;
                        playerData.GetInstance().playerRankData.lvCurrentRank = currentRank;
                        playerData.GetInstance().playerRankData.lvYesterday = yesterdayRank;
                        break;

                    case RankListType.RealTimeRank:
                        playerData.GetInstance().playerRankData.realTimeRankList.Add(rankListData);
                        playerData.GetInstance().playerRankData.realTime = currentValue;
                        playerData.GetInstance().playerRankData.realTimeCurrentRank = currentRank;
                        playerData.GetInstance().playerRankData.realTimeYesterday = yesterdayRank;
                        break;

                    default:
                        break;
                    }
                }
                int intCount = 20 / 4;
                int page     = 20 % 4;
                if (page != 0)
                {
                    intCount++;
                }
                playerData.GetInstance().playerRankData.page = intCount;
                //  RankListManage.GetInstace().GetRankListData((int)playerData.GetInstance().playerRankData.rankListType);
            }
            return(true);
        }
        else
        {
            //   Debug.Log(string.Format("返回信息失败:{0}", data["desc"].ToString()));
            Debug.Log("获取排行榜列表失败");
            return(false);
        }
    }
Beispiel #19
0
    public CReadPacket(byte[] bData)
        : base(0, 0)
    {
        if (bData != null)
        {
            m_bDataList  = bData;
            m_nPacketLen = (short)(ReadShort());
            // m_nPacketID = (ushort)ReadShort();
            string tempstr = ReadString();
            if (tempstr.Length != m_nPacketLen)
            {
                int exit = 0;
                int npos = tempstr.IndexOf('{');
                if (npos == -1)
                {
                    Debug.Log(tempstr);
                    Debug.Log("json串不全");
                    m_nPacketID = 0;
                    return;
                }
                string subLeft  = tempstr;
                string subRight = tempstr;
                while (npos != -1)
                {
                    npos    = subLeft.IndexOf('{');
                    subLeft = subLeft.Substring(npos + 1);
                    if (npos != -1)
                    {
                        exit += 1;
                    }
                    npos     = subRight.IndexOf("}");
                    subRight = subRight.Substring(npos + 1);
                    if (npos != -1)
                    {
                        exit -= 1;
                    }
                }

                if (exit != 0)
                {
                    // Debug.LogError("json串不全");
                    m_nPacketID = 0;
                    return;
                }
            }

            if (tempstr == "" || tempstr == "\n" || tempstr == "\r\n" || tempstr == "\r")
            {
                Debug.LogError("消息为空");
                return;
            }
            //JsonReader reader = new JsonReader(tempstr);
            object obj = Jsontext.ReadeData(tempstr);

            data        = obj as Dictionary <string, object>;
            m_nPacketID = ushort.Parse(data["msgid"].ToString());
            //  m = uint.Parse(data["msgid"].ToString());

            // if(DataDefine.isLogMsgDetail && DataDefine.filterWalkMsg(mID))
            //  Debug.Log("Recieve msgDetail: " + tempstr);
        }
    }