示例#1
0
 public override async Task GreetManyTimes(GreetingManyTimesRequest request, IServerStreamWriter <GreetingManyTimesResponse> responseStream, ServerCallContext context)
 {
     foreach (int val  in Enumerable.Range(1, 10))
     {
         await responseStream.WriteAsync(new GreetingManyTimesResponse { Response = $"Hello {request.Request.Firstname} {request.Request.Lastname}" });
     }
 }
示例#2
0
        static async Task Main(string[] args)
        {
            try
            {
                Thread.Sleep(1000);

                Channel channel = new Channel($"localhost:{_port}", ChannelCredentials.Insecure);
                await channel.ConnectAsync().ContinueWith((task) =>
                {
                    //var taskResult = (task.Status == Tasks.TaskStatus.RanToCompletion ?
                    //                                "Client Ran Successfully" :
                    //                                $"TaskStatus : {task.ToString()}");
                    //Console.ReadKey();
                    //Console.WriteLine(taskResult);

                    if (task.Status == Tasks.TaskStatus.RanToCompletion)
                    {
                        Console.WriteLine("The Client connected successfully");
                    }
                    else
                    {
                        Console.WriteLine($"Client Task Status: {task.ToString()}");
                    }
                });

                var client = new GreetingService.GreetingServiceClient(channel);

                var greeting = new Greeting()
                {
                    FirstName = "Francis",
                    LastName  = "Chung"
                };

                var request = new GreetingManyTimesRequest()
                {
                    Greeting = greeting
                };
                var response = client.GreetManyTimes(request);

                Console.WriteLine($"Client sending {request.Greeting.FirstName}, {request.Greeting.LastName}");
                //Console.WriteLine($"Result: {response.Result}");

                while (await response.ResponseStream.MoveNext())
                {
                    Console.WriteLine($"Result : {response.ResponseStream.Current.Result}");
                    await Task.Delay(200);
                }

                Console.ReadKey();
            }
            catch (IOException ex)
            {
                Console.WriteLine($"Error : {ex.Message}");
            }
        }
示例#3
0
        public override async Task GreetManyTime(GreetingManyTimesRequest request, IServerStreamWriter <GreetingManyTimesResponse> responseStream, ServerCallContext context)
        {
            Console.WriteLine($"Server recieved the request : {request.ToString()}");
            var result = $"hello {request.Greeting.FirstName} {request.Greeting.LastName}";

            foreach (var item in Enumerable.Range(1, 10))
            {
                await responseStream.WriteAsync(new GreetingManyTimesResponse
                {
                    Result = result
                });
            }
        }
示例#4
0
        //Server Streaming
        public override async Task GreetingManyTimes(GreetingManyTimesRequest request, IServerStreamWriter <GreetingManyTimesResponse> responseStream, ServerCallContext context)
        {
            Console.WriteLine("The Server recieved the equest:");
            Console.WriteLine(request.ToString());
            string result = String.Format("Hello {0} {1}", request.Greeting.FirstName, request.Greeting.LatsName);

            foreach (int i in Enumerable.Range(1, 10))
            {
                await responseStream.WriteAsync(new GreetingManyTimesResponse()
                {
                    Result = result
                });
            }
        }
示例#5
0
文件: Program.cs 项目: edseds/gRPC
        public static async Task DoManyGreetings(GreetingService.GreetingServiceClient client, Greeting greeting)
        {
            var request = new GreetingManyTimesRequest
            {
                Greeting = greeting
            };

            var response = client.GreetManyTimes(request);

            while (await response.ResponseStream.MoveNext())
            {
                Console.WriteLine(response.ResponseStream.Current.Result);
                await Task.Delay(200);
            }
        }