Ejemplo n.º 1
0
        public static async Task call()
        {
            ServiceSubscribe client = null;

            try
            {
                var host = "es.qipeilong.net:2181";
                //docker run --name some-zookeeper --restart always -p 2181:2181 -d zookeeper
                client = new ServiceSubscribe(host);
                client.OnRecconected    += () => { Console.WriteLine("重新链接"); };
                client.OnServiceChanged += () =>
                {
                    Console.WriteLine("服务发生更改");
                    var s = client.AllService();
                    if (ValidateHelper.IsPlumpList(s))
                    {
                        s.Select(x => $"{x.FullPathName}===={x.Url}").ToList().ForEach(Console.WriteLine);
                    }
                    else
                    {
                        Console.WriteLine("没有服务");
                    }
                };

                foreach (var i in Com.Range(10000000))
                {
                    while (client.AllService().Count <= 0)
                    {
                        Console.WriteLine($"等待服务上线==={i}");
                        await Task.Delay(TimeSpan.FromSeconds(1));
                    }

                    using (var c = new Caller(client))
                    {
                        try
                        {
                            var data = c.Instance.GetData(i);
                            Console.WriteLine($"服务返回数据:{data}");
                            await Task.Delay(TimeSpan.FromSeconds(1));
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                        }
                    }
                }

                await Task.FromResult(1);

                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                client?.Dispose();
            }
        }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     foreach (var i in ServiceBridge.helper.Com.Range(100))
     {
         using (var con = new ServiceSubscribe("es.qipeilong.net:2181"))
         {
             con.OnSubscribeFinishedAsync += async() =>
             {
                 Console.WriteLine("订阅完成");
                 await Task.FromResult(1);
             };
             con.ResolveSvc <Wcf.Contract.IUserService>();
             Console.WriteLine("订阅服务" + con.AllService().Count());
         }
     }
     //取消监听
     sub.Value.Dispose();
 }
Ejemplo n.º 3
0
 public Caller(ServiceSubscribe client) : base(client.ResolveSvc <IService1>())
 {
 }