Esempio n. 1
0
        public void ConnectServerWithTdirDefault(int index, ChooseSvrPolicy policy)
        {
            this.chooseSvrPol        = policy;
            this.isLoginingByDefault = true;
            IPAddrInfo info = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

            ApolloConfig.loginOnlyVPort = ushort.Parse(info.port);
            ApolloConfig.ISPType        = MonoSingleton <TdirMgr> .GetInstance().GetISP();

            if (MonoSingleton <CTongCaiSys> .instance.IsCanUseTongCai())
            {
                IPAddrInfo info2 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

                ApolloConfig.loginUrl         = string.Format("tcp://{0}:{1}", MonoSingleton <CTongCaiSys> .instance.TongcaiUrl, info2.port);
                ApolloConfig.loginOnlyIpOrUrl = MonoSingleton <CTongCaiSys> .instance.TongcaiUrl;
            }
            else
            {
                IPAddrInfo info3 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

                IPAddrInfo info4 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

                ApolloConfig.loginUrl = string.Format("tcp://{0}:{1}", info3.ip, info4.port);
                IPAddrInfo info5 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

                ApolloConfig.loginOnlyIpOrUrl = info5.ip;
            }
            this.ConnectServer();
            Singleton <BeaconHelper> .GetInstance().Event_CommonReport("Event_LoginMsgSend");
        }
Esempio n. 2
0
        private string GetLobbyNormalConnectUrl(uint curConnectTime)
        {
            string ip           = null;
            int    connectIndex = MonoSingleton <TdirMgr> .instance.m_connectIndex;

            if ((curConnectTime == 1) || (curConnectTime == 2))
            {
                IPAddrInfo info = MonoSingleton <TdirMgr> .instance.SelectedTdir.addrs[connectIndex];
                ip = info.ip;
            }
            else if ((curConnectTime == 3) || (curConnectTime == 4))
            {
                ip = MonoSingleton <TdirMgr> .instance.GetLianTongIP();
            }
            else if ((curConnectTime == 5) || (curConnectTime == 6))
            {
                ip = MonoSingleton <TdirMgr> .instance.GetYiDongIP();
            }
            else if ((curConnectTime == 7) || (curConnectTime == 8))
            {
                ip = MonoSingleton <TdirMgr> .instance.GetDianXingIP();
            }
            if (ip == null)
            {
                IPAddrInfo info2 = MonoSingleton <TdirMgr> .instance.SelectedTdir.addrs[connectIndex];
                ip = info2.ip;
            }
            return(ip);
        }
Esempio n. 3
0
        private void ConnectServerWithTdirCandidate(int index)
        {
            bool flag = false;

            this.isLoginingByDefault = false;
            IPAddrInfo info = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

            ApolloConfig.loginOnlyVPort = ushort.Parse(info.port);
            if (MonoSingleton <CTongCaiSys> .instance.IsCanUseTongCai())
            {
                flag = true;
                ApolloConfig.ISPType = MonoSingleton <TdirMgr> .GetInstance().GetISP();

                ApolloConfig.loginOnlyIpOrUrl = MonoSingleton <CTongCaiSys> .instance.TongcaiIps[ApolloConfig.ISPType];
                IPAddrInfo info2 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

                ApolloConfig.loginUrl = string.Format("tcp://{0}:{1}", ApolloConfig.loginOnlyIpOrUrl, info2.port);
            }
            else
            {
                object param = 0;
                if (MonoSingleton <TdirMgr> .GetInstance().ParseNodeAppAttr(MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.attr, TdirNodeAttrType.ISPChoose, ref param))
                {
                    Dictionary <string, int> dictionary = (Dictionary <string, int>)param;
                    if (dictionary != null)
                    {
                        foreach (KeyValuePair <string, int> pair in dictionary)
                        {
                            if (pair.Value == MonoSingleton <TdirMgr> .GetInstance().GetISP())
                            {
                                IPAddrInfo info3 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

                                ApolloConfig.loginUrl         = string.Format("tcp://{0}:{1}", pair.Key, info3.port);
                                ApolloConfig.loginOnlyIpOrUrl = pair.Key;
                                ApolloConfig.ISPType          = MonoSingleton <TdirMgr> .GetInstance().GetISP();

                                flag = true;
                                break;
                            }
                        }
                    }
                }
            }
            if (flag)
            {
                this.ConnectServer();
            }
            else
            {
                this.ConnectFailed();
            }
        }
Esempio n. 4
0
 public void ProcessGetHostAddress()
 {
     if ((this.getAddressResult != null) && this.getAddressResult.get_IsCompleted())
     {
         IPAddress[] addressArray = Dns.EndGetHostAddresses(this.getAddressResult);
         this.getAddressResult = null;
         if ((addressArray != null) && (addressArray.Length > 0))
         {
             string str   = addressArray[0].ToString();
             object param = 0;
             if (this.ParseNodeAppAttr(this.mSelectedTdir.attr, TdirNodeAttrType.ISPChoose, ref param))
             {
                 Dictionary <string, int> dictionary = (Dictionary <string, int>)param;
                 ApolloConfig.ISPType = dictionary[str];
             }
             IPAddrInfo info  = this.mSelectedTdir.addrs[0];
             IPAddrInfo info2 = this.mSelectedTdir.addrs[0];
             ApolloConfig.loginUrl = string.Format("tcp://{0}:{1}", info.ip, info2.port);
             IPAddrInfo info3 = this.mSelectedTdir.addrs[0];
             ApolloConfig.loginOnlyIpOrUrl = info3.ip;
             IPAddrInfo info4 = this.mSelectedTdir.addrs[0];
             ApolloConfig.loginOnlyVPort = ushort.Parse(info4.port);
         }
         else
         {
             object obj3 = 0;
             if (this.ParseNodeAppAttr(this.mSelectedTdir.attr, TdirNodeAttrType.ISPChoose, ref obj3))
             {
                 Dictionary <string, int> dictionary2 = (Dictionary <string, int>)obj3;
                 if (dictionary2 != null)
                 {
                     foreach (KeyValuePair <string, int> pair in dictionary2)
                     {
                         if (pair.Value == this.GetISP())
                         {
                             IPAddrInfo info5 = this.mSelectedTdir.addrs[0];
                             ApolloConfig.loginUrl         = string.Format("tcp://{0}:{1}", pair.Key, info5.port);
                             ApolloConfig.loginOnlyIpOrUrl = pair.Key;
                             IPAddrInfo info6 = this.mSelectedTdir.addrs[0];
                             ApolloConfig.loginOnlyVPort = ushort.Parse(info6.port);
                             ApolloConfig.ISPType        = this.GetISP();
                             break;
                         }
                     }
                 }
             }
         }
         this.ConnectLobby();
     }
 }
Esempio n. 5
0
        public void ConnectServerWithTdirDefault(int index)
        {
            this.isLoginingByDefault = true;
            IPAddrInfo info = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

            IPAddrInfo info2 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

            ApolloConfig.loginUrl = string.Format("tcp://{0}:{1}", info.ip, info2.port);
            IPAddrInfo info3 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

            ApolloConfig.loginOnlyIpOrUrl = info3.ip;
            IPAddrInfo info4 = MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs[index];

            ApolloConfig.loginOnlyVPort = ushort.Parse(info4.port);
            ApolloConfig.ISPType        = 1;
            this.ConnectServer();
            Singleton <BeaconHelper> .GetInstance().Event_CommonReport("Event_LoginMsgSend");
        }
Esempio n. 6
0
    private bool CreateSvrUrl(TdirTreeNode node, ref TdirUrl tdirUrl)
    {
        string connectUrl = node.dynamicInfo.connectUrl;

        if (string.IsNullOrEmpty(connectUrl))
        {
            return(false);
        }
        if (!this.CheckTreeNodeValid(node))
        {
            return(false);
        }
        tdirUrl.nodeID = node.nodeID;
        tdirUrl.name   = node.name;
        tdirUrl.statu  = (TdirSvrStatu)node.status;
        if ((tdirUrl.statu == TdirSvrStatu.FINE) || (tdirUrl.statu == TdirSvrStatu.HEAVY))
        {
            tdirUrl.flag = (SvrFlag)node.svrFlag;
        }
        else
        {
            tdirUrl.flag = SvrFlag.NoFlag;
        }
        tdirUrl.mask  = node.staticInfo.bitmapMask;
        tdirUrl.addrs = new List <IPAddrInfo>();
        tdirUrl.attr  = node.staticInfo.appAttr;
        if (node.userRoleInfo != null)
        {
            tdirUrl.roleCount = (uint)node.userRoleInfo.Count;
            uint lastLoginTime = 0;
            for (int j = 0; j < node.userRoleInfo.Count; j++)
            {
                TdirUserRoleInfo info3 = node.userRoleInfo[j];
                if (info3.lastLoginTime > lastLoginTime)
                {
                    TdirUserRoleInfo info4 = node.userRoleInfo[j];
                    lastLoginTime = info4.lastLoginTime;
                }
            }
            tdirUrl.lastLoginTime = lastLoginTime;
        }
        else
        {
            tdirUrl.roleCount     = 0;
            tdirUrl.lastLoginTime = 0;
        }
        char[]   separator = new char[] { ';' };
        string[] strArray  = connectUrl.Split(separator);
        if (strArray == null)
        {
            return(false);
        }
        for (int i = 0; i < strArray.Length; i++)
        {
            char[]   chArray2  = new char[] { ':' };
            string[] strArray2 = strArray[i].Split(chArray2);
            for (int k = 1; k < strArray2.Length; k++)
            {
                if (strArray2[k].IndexOf('-') >= 0)
                {
                    int      num5;
                    int      num6;
                    char[]   chArray3  = new char[] { '-' };
                    string[] strArray3 = strArray2[k].Split(chArray3);
                    if (((strArray3.Length == 2) && int.TryParse(strArray3[0], out num5)) && (int.TryParse(strArray3[1], out num6) && (num5 <= num6)))
                    {
                        int num7 = (num6 - num5) + 1;
                        for (int m = 0; m < num7; m++)
                        {
                            int        num9 = num5 + m;
                            IPAddrInfo item = new IPAddrInfo {
                                ip   = strArray2[0],
                                port = num9.ToString()
                            };
                            tdirUrl.addrs.Add(item);
                        }
                    }
                }
                else
                {
                    IPAddrInfo info2 = new IPAddrInfo {
                        ip   = strArray2[0],
                        port = strArray2[k]
                    };
                    tdirUrl.addrs.Add(info2);
                }
            }
        }
        object param = null;

        if (this.ParseNodeAppAttr(tdirUrl.attr, TdirNodeAttrType.LogicWorldID, ref param))
        {
            tdirUrl.logicWorldID = (int)param;
        }
        else
        {
            tdirUrl.logicWorldID = 0;
        }
        return(true);
    }