Beispiel #1
0
        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();
        }
Beispiel #3
0
        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);
        }