Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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}");
            }
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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();
        }
Exemplo n.º 11
0
 public ZipkinController(
     ExampleService.ExampleServiceClient exampleClient)
 {
     _exampleClient = exampleClient;
 }
Exemplo n.º 12
0
        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();
        }