private static Chatter.ChatterClient CreateClient() { var channel = GrpcChannel.ForAddress("http://localhost:5000"); var client = new Chatter.ChatterClient(channel); return(client); }
static async Task Main(string[] args) { var name = args[0]; var channel = new Channel("localhost:50051", ClientResources.SslCredentials); var client = new Chatter.ChatterClient(channel); using (var chat = client.Chat()) { Console.WriteLine($"Connected as {name}. Send empty message to quit."); // Dispatch, this could be racy var responseTask = Task.Run(async() => { while (await chat.ResponseStream.MoveNext(CancellationToken.None)) { Console.WriteLine($"{chat.ResponseStream.Current.Name}: {chat.ResponseStream.Current.Message}"); } }); var line = Console.ReadLine(); while (!string.IsNullOrEmpty(line)) { await chat.RequestStream.WriteAsync(new ChatMessage { Name = name, Message = line }); line = Console.ReadLine(); } await chat.RequestStream.CompleteAsync(); } Console.WriteLine("Shutting down"); channel.ShutdownAsync().Wait(); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
static async Task <int> Main(string[] args) { if (args.Length != 1) { Console.WriteLine("No name provided. Usage: dotnet run <name>."); return(1); } var name = args[0]; // Server will only support Https on Windows and Linux var credentials = RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? ChannelCredentials.Insecure : ClientResources.SslCredentials; var channel = new Channel("localhost:50051", credentials); var client = new Chatter.ChatterClient(channel); using (var chat = client.Chat()) { Console.WriteLine($"Connected as {name}. Send empty message to quit."); // Dispatch, this could be racy var responseTask = Task.Run(async() => { while (await chat.ResponseStream.MoveNext(CancellationToken.None)) { Console.WriteLine($"{chat.ResponseStream.Current.Name}: {chat.ResponseStream.Current.Message}"); } }); var line = Console.ReadLine(); while (!string.IsNullOrEmpty(line)) { await chat.RequestStream.WriteAsync(new ChatMessage { Name = name, Message = line }); line = Console.ReadLine(); } await chat.RequestStream.CompleteAsync(); } Console.WriteLine("Shutting down"); channel.ShutdownAsync().Wait(); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); return(0); }
public gRPCChannelService(string hostAddress) { GrpcChannel = GrpcChannel.ForAddress(hostAddress); ChatterClient = new Chatter.ChatterClient(GrpcChannel); }