static async Task Main(string[] args) { // The port number(5001) must match the port of the gRPC server. var channel = GrpcChannel.ForAddress("https://localhost:20987"); var client = new Service1.Service1Client(channel); var client2 = new Service2.Service2Client(channel); for (var i = 0; i < 10; i++) { try { //var reply = await client.SendAsync(new Service1Command { Name = "GrpcCli" }); //Console.WriteLine("cli1: " + reply.Message); var reply2 = await client2.SendAsync(new Service2Command { Name = "GrpcCli" }); Console.WriteLine("cli2: " + reply2.Message); await Task.Delay(1000); } catch (Exception e) { Console.WriteLine(e.Message); } } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
async static Task Main(string[] args) { //discover service ConsulClient client = new ConsulClient(); var loginServiceDiscoverResponse = await client.Health.Service("Login"); var loginServiceAddresses = loginServiceDiscoverResponse.Response; if (loginServiceAddresses.Length <= 0) { Console.WriteLine("没有找到Login登录服务,请先启动服务"); return; } //do login and get token var loginResponse = GetLoginToken(loginServiceAddresses[0]); if (!loginResponse.Success) { Console.WriteLine($"登录失败,原因:{loginResponse.ErrMsg}"); return; } var serviceResponse = await client.Health.Service("Service1"); var serviceAddress = serviceResponse.Response; if (serviceAddress.Length <= 0) { Console.WriteLine("没有找到服务Service1,请先启动服务"); return; } //use first address Channel channel = new Channel($"{serviceAddress[0].Service.Address}:{serviceAddress[0].Service.Port}", ChannelCredentials.Insecure); var serviceClient = new Service1.Service1Client(channel); var requestJsonStr = "{Name:\"server1Client\"}"; var request = JsonConvert.DeserializeObject <HelloRequest>(requestJsonStr); Metadata metadata = new Metadata(); metadata.Add("accessToken", loginResponse.Token); var callOption = new CallOptions().WithHeaders(metadata); var reply = serviceClient.Hello1(request, callOption); Console.WriteLine($"Greeting :{reply.Message}"); channel.ShutdownAsync().Wait(); Console.WriteLine("按回车键退出"); Console.ReadLine(); }