Exemple #1
0
        static async Task Main(string[] args)
        {
            var discovery = new ConsulClient(new Uri("http://127.0.0.1:8500"));

            var availableServices = await discovery.FindService("GrpcMiddleWareServer");

            var firstService = availableServices.FirstOrDefault();

            if (firstService != null)
            {
                Channel channel = new Channel(firstService.Adress, ChannelCredentials.Insecure);

                var policy = Policy
                             .Handle <RpcException>()
                             .WaitAndRetry(5, retryAttempt =>
                                           TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))
                                           );

                var    client = new Greeter.GreeterClient(new BasicCallInvoker(channel, policy));
                string user   = "******";
                var    reply  = client.SayHello(new HelloRequest {
                    Name = user
                }, new CallOptions().WithWaitForReady(true));
                Console.WriteLine("Greeting: " + reply.Message);

                channel.ShutdownAsync().Wait();
                Console.WriteLine("Press any key to exit...");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Could not find service");
            }
        }