示例#1
0
        public bool RegInstance()
        {
            NacosAPIEntity entity = GetNacosAPI("RegInstance");

            item = new HttpItem
            {
                URL    = $"{nacoshost}{entity.Url}?{String.Format(entity.Parms, query.ip, query.port, query.NameSpaceId, query.Name,query.clustername,query.weight)}",
                Method = entity.Method
            };
            //映射路由
            String html = HttpMethod.HttpWork(item).Html;

            item = new HttpItem
            {
                URL         = routeaddress,
                Method      = "POST",
                Postdata    = routeinfo.Replace("{ServiceName}", query.Name),
                ContentType = "application/json; charset=UTF-8"
            };
            var result = HttpMethod.HttpWork(item);

            if (result.StatusCode != System.Net.HttpStatusCode.OK)
            {
                throw new Exception("注册路由出错");
            }
            Task.Run(() =>
            {
                while (true)
                {
                    Thread.Sleep(5000);
                    Beat();
                }
            });
            return(html.Contains("ok"));
        }
示例#2
0
        public bool CreateService()
        {
            NacosAPIEntity entity = GetNacosAPI("CreateService");

            item = new HttpItem
            {
                URL    = $"{nacoshost}{entity.Url}?{String.Format(entity.Parms, query.Name, query.NameSpaceId)}",
                Method = entity.Method
            };
            return(HttpMethod.HttpWork(item).Html.Contains("ok"));
        }
示例#3
0
        public IServiceConfig GetConfig(IServiceConfig config)
        {
            NacosAPIEntity entity = GetNacosAPI("GetConfig");

            item = new HttpItem
            {
                URL    = $"{nacoshost}{entity.Url}?{String.Format(entity.Parms,query.NameSpaceId, config.dataId, config.group)}",
                Method = entity.Method
            };
            config.configstr = HttpMethod.HttpWork(item).Html;
            return(config);
        }
示例#4
0
        public bool Beat()
        {
            NacosAPIEntity entity = GetNacosAPI("Beat");

            item = new HttpItem
            {
                URL    = $"{nacoshost}{entity.Url}?{String.Format(entity.Parms, query.Name, JsonConvert.SerializeObject(new { cluster = query.clustername, ip = query.ip, port = query.port, scheduled = true, serviceName = query.Name, query.weight }),query.NameSpaceId)}",
                Method = entity.Method
            };
            String html = HttpMethod.HttpWork(item).Html;

            //Console.WriteLine($"Beat:{html}");
            return(html.Contains("ok"));
        }
示例#5
0
        public IServiceInfo QueryService()
        {
            NacosAPIEntity entity = GetNacosAPI("QueryService");

            item = new HttpItem
            {
                URL    = $"{nacoshost}{entity.Url}?{String.Format(entity.Parms, query.NameSpaceId)}",
                Method = entity.Method
            };
            String html = HttpMethod.HttpWork(item).Html;

            if (html.Contains("ok"))
            {
                return(new NacosService
                {
                    Name = Convert.ToString(query.Name),
                    NameSpaceId = query.NameSpaceId,
                    ip = query.ip,
                    port = query.port,
                });
            }
            return(null);
        }
示例#6
0
        public IEnumerable <IServiceInfo> QueryServiceList()
        {
            NacosAPIEntity entity = GetNacosAPI("QueryServiceList");

            item = new HttpItem
            {
                URL    = $"{nacoshost}{entity.Url}?{String.Format(entity.Parms, query.NameSpaceId)}",
                Method = entity.Method
            };
            String html = HttpMethod.HttpWork(item).Html;

            if (JsonConvert.DeserializeObject(html) is JObject jobj)
            {
                var doms = jobj.SelectTokens("doms[*]");
                return(from a in doms
                       select new NacosService
                {
                    Name = Convert.ToString(a),
                    NameSpaceId = query.NameSpaceId
                });
            }
            return(null);
        }
示例#7
0
 public void ListenConfig()
 {
     NacosAPIEntity entity = GetNacosAPI("ListenConfig");
 }