private static async Task RunAsync() { var channel = new Channel("127.0.0.1", 5000, ChannelCredentials.Insecure); var invoker = new DefaultCallInvoker(channel); using (var call = invoker.AsyncDuplexStreamingCall(Descriptors.Method, null, new CallOptions { })) { var responseCompleted = call.ResponseStream .ForEachAsync(async response => { Console.WriteLine($"Got response: {response.Text}"); }); for (int i = 0; i < 100; i++) { await call.RequestStream.WriteAsync(new Message { Text = i.ToString() }); } await call.RequestStream.CompleteAsync(); await responseCompleted; } Console.WriteLine("Press enter to stop..."); Console.ReadLine(); await channel.ShutdownAsync(); }
private static async Task RunAsync() { var channel = new Channel("127.0.0.1", 5000, ChannelCredentials.Insecure); var invoker = new DefaultCallInvoker(channel); using (var call = invoker.AsyncDuplexStreamingCall(Descriptors.Method, null, new CallOptions { })) { var responseCompleted = call.ResponseStream .ForEachAsync(async response => { Console.WriteLine($"Output: {response.Output}"); }); Console.Write("Enter number 1: "); int x = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter number 2: "); int y = Convert.ToInt32(Console.ReadLine()); await call.RequestStream.WriteAsync(new AdditionRequest { X = x, Y = y }); Console.ReadLine(); await call.RequestStream.CompleteAsync(); await responseCompleted; } Console.WriteLine("Press enter to stop..."); Console.ReadLine(); await channel.ShutdownAsync(); }
public static async Task <RegisterResponseModel> Register(RegisterRequestModel request) { var channel = new Channel(ConfigurationManager.AppSettings["Server"], int.Parse(ConfigurationManager.AppSettings["Port"]), ChannelCredentials.Insecure); var invoker = new DefaultCallInvoker(channel); RegisterResponseModel res = null; using (var call = invoker.AsyncDuplexStreamingCall(ServiceDefinition.Register, null, new CallOptions { })) { var responseCompleted = call.ResponseStream .ForEachAsync(async response => { res = response; }); await call.RequestStream.WriteAsync(request); await call.RequestStream.CompleteAsync(); await responseCompleted; } return(res); }