private static async Task BiDirectionalStreamingCallExample(ExampleService.ExampleServiceClient client) { using (var call = client.StreamingBothWays()) { var responseReaderTask = Task.Run(async() => { while (await call.ResponseStream.MoveNext()) { var response = call.ResponseStream.Current; Console.WriteLine("From Server: " + response.PageData); } }); for (var i = 0; i < 5; i++) { await call.RequestStream.WriteAsync(new ExampleRequest() { PageData = "Page = " + i }); await Task.Delay(TimeSpan.FromSeconds(1)); } await call.RequestStream.CompleteAsync(); await responseReaderTask; } }
private static async Task UnaryCallExample(ExampleService.ExampleServiceClient client) { var request = new ExampleRequest { PageIndex = 0, PageSize = 20, IsDescending = true }; var response = await client.UnaryCallAsync(request); Console.WriteLine("Received " + response.PageData); }
private static async Task ServerStreamingCallExample(ExampleService.ExampleServiceClient client) { var request = new ExampleRequest { PageIndex = 0, PageSize = 20, IsDescending = true }; using var call = client.StreamingFromServer(request); await foreach (var response in call.ResponseStream.ReadAllAsync()) { Console.WriteLine("Received " + response.PageData); } }
static async Task Test() { Channel channel = new Channel("127.0.0.1:8888", ChannelCredentials.Insecure); var interceptor = new ClientInterceptor(); var callInvoker = channel.Intercept(interceptor); var client = new ExampleService.ExampleServiceClient(callInvoker); var reply = await client.GetValueAsync(new SampleRequest { Key = "test" }); Console.WriteLine("Value: " + reply.Payload.Deserialize().Value); channel.ShutdownAsync().Wait(); }
private static async Task ClientStreamingCallExample(ExampleService.ExampleServiceClient client) { using (var call = client.StreamingFromClient()) { for (var i = 0; i < 5; i++) { await call.RequestStream.WriteAsync(new ExampleRequest() { PageData = "Page = " + i }); await Task.Delay(TimeSpan.FromSeconds(1)); } await call.RequestStream.CompleteAsync(); var reply = await call.ResponseAsync; Console.WriteLine("From Server: " + reply.PageData); } }
private static async Task MakeUnaryCall(ExampleService.ExampleServiceClient client, DateTime deadline, ExampleRequest request) { Console.WriteLine("starting call..."); var call = client.UnaryAsync(request, Metadata.Empty, deadline, CancellationToken.None); var headers = await call.ResponseHeadersAsync; Console.WriteLine("got response headers: " + headers); Console.WriteLine("reading response..."); var msg = await call.ResponseAsync; Console.WriteLine("got response message: " + msg); var status = call.GetStatus(); Console.WriteLine("read status: " + status); var trailers = call.GetTrailers(); Console.WriteLine("read trailers: " + trailers); }
private static async Task MakeServerStreamingCall(ExampleService.ExampleServiceClient client, DateTime deadline, ExampleRequest request) { Console.WriteLine("starting call..."); var call = client.ServerStream(request, Metadata.Empty, deadline, CancellationToken.None); var headers = call.ResponseHeadersAsync; Console.WriteLine("got response headers: " + headers); Console.WriteLine("reading response stream..."); await foreach (var m in call.ResponseStream.ReadAllAsync()) { Console.WriteLine("read message: " + m); } Console.WriteLine("finished reading response stream."); var status = call.GetStatus(); Console.WriteLine("read status: " + status); var trailers = call.GetTrailers(); Console.WriteLine("read trailers: " + trailers); }
static void Main(string[] args) { AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true); var channel = GrpcChannel.ForAddress("http://localhost:5000", new GrpcChannelOptions()); var client = new ExampleService.ExampleServiceClient(channel); try { var deadline = DateTime.UtcNow.Add(TimeSpan.FromMinutes(1)); var request = new ExampleRequest { PleaseFail = FailRequest.None }; // MakeServerStreamingCall(client, deadline, request).GetAwaiter().GetResult(); MakeUnaryCall(client, deadline, request).GetAwaiter().GetResult(); } catch (Exception exception) { Console.WriteLine($"ERROR"); Console.WriteLine($"{exception.Message}"); } }
private async void BtnCallRpc_Click(object sender, EventArgs e) { try { CallInvoker invoker = m_RpcContext.GetCallInvoker("invoker1"); ExampleService.ExampleServiceClient client = new ExampleService.ExampleServiceClient(invoker); MemberCondition condition = new MemberCondition() { ID = "123" }; Models.Member member = await client.GetMemberAsync(condition); MessageBox.Show(member.Name); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); MessageBox.Show(ex.Message); } }
private static async Task Main(string[] args) { var channel = GrpcChannel.ForAddress("https://localhost:5001"); //var client = new Greeter.GreeterClient(channel); //var reply = await client.SayHelloAsync(new HelloRequest { Name = "John" }); //Console.WriteLine("Greeting: " + reply.Message); //Console.WriteLine("Shutting down"); //Console.WriteLine("Press any key to exit..."); //Console.ReadKey(); var client = new ExampleService.ExampleServiceClient(channel); await UnaryCallExample(client); //await ServerStreamingCallExample(client); //await ClientStreamingCallExample(client); //await BiDirectionalStreamingCallExample(client); Console.WriteLine("Shutting down"); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }
public ZipkinController( ExampleService.ExampleServiceClient exampleClient) { _exampleClient = exampleClient; }
private async void TestingTheCsharpClientApi() { var client = new ExampleService.ExampleServiceClient((ChannelBase)null); var deadline = DateTime.Now.Add(TimeSpan.FromMinutes(1)); // new CallOptions() // unary var unaryCall = client.UnaryAsync(new ExampleRequest(), Metadata.Empty, deadline, CancellationToken.None); var unaryResponseHeaders = await unaryCall.ResponseHeadersAsync; var unaryResponse = await unaryCall.ResponseAsync; unaryCall.GetStatus(); unaryCall.GetTrailers(); // server streaming var serverStreamingCall = client.ServerStream(new ExampleRequest(), Metadata.Empty, deadline, CancellationToken.None); var serverStreamHeaders = serverStreamingCall.ResponseHeadersAsync; await foreach (var m in serverStreamingCall.ResponseStream.ReadAllAsync()) { } serverStreamingCall.GetStatus(); serverStreamingCall.GetTrailers(); // client streaming var clientStreamingCall = client.ClientStream(Metadata.Empty, deadline, CancellationToken.None); await clientStreamingCall.RequestStream.WriteAsync(new ExampleRequest()); await clientStreamingCall.RequestStream.CompleteAsync(); var clientStreamResponseHeaders = await clientStreamingCall.ResponseHeadersAsync; var clientStreamResponse = await clientStreamingCall.ResponseAsync; clientStreamingCall.GetStatus(); clientStreamingCall.GetTrailers(); // duplex streaming var duplexCall = client.Bidi(Metadata.Empty, deadline, CancellationToken.None); var duplexResponseHeaders = await duplexCall.ResponseHeadersAsync; await duplexCall.RequestStream.WriteAsync(new ExampleRequest()); await duplexCall.RequestStream.CompleteAsync(); await foreach (var m in duplexCall.ResponseStream.ReadAllAsync()) { } duplexCall.GetStatus(); duplexCall.GetTrailers(); }