Пример #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="host"></param>
 /// <param name="port"></param>
 /// <param name="appkey"></param>
 /// <param name="_listenCount"></param>
 /// <param name="grouppolicy"></param>
 /// <param name="oServer"></param>
 /// <param name="_mapType">0:端口转发,1:http的appkey转发</param>
 /// <param name="fromEureka"></param>
 public mapPortGroup(string host, string port, string appkey, int _listenCount, outPortSelectPolicy grouppolicy, proxyNettyServer oServer, int _mapType, bool fromEureka = false) : this(host, port, appkey, _listenCount, grouppolicy, null, oServer, listenHttpsEnum.onlyHttpsPort, _mapType, fromEureka)
 {
 }
Пример #2
0
        public mapPortGroup(string host, string port, string appkey, int _listenCount, outPortSelectPolicy grouppolicy, string httpsPort, proxyNettyServer oServer, listenHttpsEnum usehttps = listenHttpsEnum.onlyListenport, int _mapType = 0, bool fromEureka = false) : this()
        {
            this.ownServer = oServer;
            IPAddress ip = IPAddress.Any;

            if (!IPAddress.TryParse(host, out ip))
            {
            }
            ushort uport;

            if (ushort.TryParse(port, out uport))
            {
                _point_in = new IPEndPoint(ip, uport);
            }
            else
            {
                _point_in = null;
            }
            this.host         = host;
            this.port         = port;
            this.appkey       = appkey;
            this.mapType      = _mapType;
            this.groupPolicy  = grouppolicy;
            this._maxInCount  = _listenCount;
            this.httpsPort    = httpsPort;
            this.useHttps     = usehttps;
            this.isfromEureka = fromEureka;
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        public void loadPortProxyCfg()
        {
            string filename = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, localRunServer.portProxyFileName);

            if (!File.Exists(filename))
            {
                return;
            }
            XmlDocument tmpxmldoc = Static_xmltools.GetXmlDocument(filename);

            if (tmpxmldoc == null)
            {
                return;
            }
            XmlNodeList groupList = null;

            string xpathstr = "//application/group";

            groupList = Static_xmltools.SelectXmlNodes(tmpxmldoc, xpathstr);
            foreach (XmlNode obj in groupList)
            {
                //todo
                string appkey     = Static_xmltools.GetXmlAttr(obj, "Appkey");
                string listenport = Static_xmltools.GetXmlAttr(obj, "listenPort");
                string str        = Static_xmltools.GetXmlAttr(obj, "Policy");
                int    policy     = 0;
                int.TryParse(str, out policy);

                int mapType = 0;
                str = Static_xmltools.GetXmlAttr(obj, "mapType");
                int.TryParse(str, out mapType);
                if (mapType == 1)
                {
                    listenport = this.port;
                }
                string _httpsPort = Static_xmltools.GetXmlAttr(obj, "listenHttpsPort");

                outPortSelectPolicy selectpolicy = (outPortSelectPolicy)policy;
                str = Static_xmltools.GetXmlAttr(obj, "MaxWaitQueue");
                int maxQueueCount = -1;
                int.TryParse(str, out maxQueueCount);
                string host     = Static_xmltools.GetXmlAttr(obj, "Host");
                int    usehttps = 0;
                str = Static_xmltools.GetXmlAttr(obj, "useHttps");
                int.TryParse(str, out usehttps);
                mapPortGroup mpg = new mapPortGroup(host, listenport, appkey, maxQueueCount, selectpolicy
                                                    , _httpsPort, this, (listenHttpsEnum)(usehttps), mapType);
                xpathstr = ".//portMap";
                XmlNodeList maplist = Static_xmltools.SelectXmlNodes(obj, xpathstr);
                foreach (XmlNode onenode in maplist)
                {
                    string outHost       = Static_xmltools.GetXmlAttr(onenode, "host");
                    string outPort       = Static_xmltools.GetXmlAttr(onenode, "port");
                    string _outhttpsPort = Static_xmltools.GetXmlAttr(onenode, "httpsPort");
                    str = Static_xmltools.GetXmlAttr(onenode, "maxConnect");
                    int maxcount = int.Parse(str);
                    str = Static_xmltools.GetXmlAttr(onenode, "minConnect");
                    int    mincount  = int.Parse(str);
                    bool   needcheck = true;
                    string needcl    = Static_xmltools.GetXmlAttr(onenode, "needCheckLive");
                    bool.TryParse(needcl, out needcheck);

                    mpg.addOutPort(outHost, outPort, _outhttpsPort, maxcount, needcheck);
                }
                if (mapType == 0)
                {
                    if (mapPortGroup_dic.ContainsKey(listenport))
                    {
                        continue;
                    }


                    mapPortGroup_dic.Add(listenport, mpg);
                }
                else
                {
                    if (maphttpGroup_dic.ContainsKey(appkey))
                    {
                        continue;
                    }
                    maphttpGroup_dic.Add(appkey, mpg);
                }
            }
        }