Пример #1
0
 private static async Task RunStream(GreeterClient client)
 {
     await foreach (var item in Go(client, CancellationToken.None).Select((s, i) => $"{s} ({i})"))
     {
         Console.WriteLine(item);
     }
 }
Пример #2
0
        private static void Menu(ref bool keepRunning, Socket socket, GreeterClient client)
        {
            Console.WriteLine(separador);
            Console.WriteLine("Bienvenido al menu principal de administrador, ingresa la opcion que deseas realizar \n 1-ABM usuario \n 2-Ver logs \n 3-Lista de usuarios \n 4-Exit");
            var input = Console.ReadLine();

            switch (input)
            {
            case "1":
                ABMMenuAsync(client);
                break;

            case "2":
                LogMenu(socket);
                break;

            case "3":
                ListUsers(client);
                break;

            case "4":
                CommandPackage package = new CommandPackage(HeaderConstants.Request, CommandConstants.Exit);
                CommandProtocol.SendCommand(socket, package);
                socket.Shutdown(SocketShutdown.Both);
                socket.Close();
                keepRunning = false;
                break;

            default:
                Console.WriteLine("Opcion no valida");
                break;
            }
        }
Пример #3
0
        private static async Task GreeterRequestWithSecureChannel(GrpcChannel channel)
        {
            var client = new GreeterClient(channel);
            var reply  = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });

            Console.WriteLine("Greeting: " + reply.Message);
        }
Пример #4
0
        private static async Task RegisterUser(GreeterClient client)
        {
            Console.WriteLine("Inserte nombre de usuario");
            string name = Console.ReadLine();

            while (name.Trim().Equals(""))
            {
                name = Console.ReadLine();
            }
            Console.WriteLine("Inserte contraseña");
            string password = Console.ReadLine();

            while (password.Trim().Equals(""))
            {
                password = Console.ReadLine();
            }
            var user = new UserRpc
            {
                Name     = name,
                Password = password
            };
            var response = await client.RegisterUserAsync(user);

            Console.WriteLine(response.Message);
        }
Пример #5
0
        public WebFontClient(string address, string apikey, OssConfig ossConfig)
        {
            if (!string.IsNullOrEmpty(address))
            {
                _address = address;
            }

            if (!string.IsNullOrEmpty(apikey))
            {
                _apiKey = apikey;
            }
            this._ossConfig = ossConfig;
            //客户端跨语言调用非tls gRPC这样设置,请求http,非https
            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
            _channel = GrpcChannel.ForAddress(_address);
            _client  = new GreeterClient(_channel);

            //日志可去除
            var loggerFactory = LoggerFactory.Create(builder =>
            {
                builder.AddFilter("Microsoft", LogLevel.Warning)
                .AddFilter("System", LogLevel.Warning)
                .AddFilter("LoggingConsoleApp.Program", LogLevel.Debug);
            });

            //ILogger logger = loggerFactory.CreateLogger<WebFontClient>();
            _logger = loggerFactory.CreateLogger <WebFontClient>();
        }
Пример #6
0
        private static async Task GreeterRequest(GrpcChannel channel)
        {
            var client = new GreeterClient(channel);
            var reply  = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });

            Console.WriteLine("Greeting: " + reply.Message);
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
Пример #7
0
        private static async Task ListUsers(GreeterClient client)
        {
            var response = await client.ListUsersAsync(new ListRequest());

            foreach (string user in response.Users)
            {
                Console.WriteLine(user);
            }
        }
Пример #8
0
        static async Task Main(string[] args)
        {
            var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client  = new GreeterClient(channel);

            await RunFeedMe(client);

            await Task.Delay(60000);
        }
Пример #9
0
 static async IAsyncEnumerable <string> Go(GreeterClient client, [EnumeratorCancellation]  CancellationToken ct)
 {
     using (var stream = client.GetNooberStream(new Empty(), null, null, ct))
     {
         while (await stream.ResponseStream.MoveNext(ct))
         {
             yield return(stream.ResponseStream.Current.Message);
         }
     }
 }
Пример #10
0
        private static async Task GreeterRequest(GrpcChannel channel, string token)
        {
            var headers = new Metadata();

            headers.Add("Authorization", $"Bearer {token}");

            var client = new GreeterClient(channel);
            var reply  = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" }, headers);

            Console.WriteLine("Greeting: " + reply.Message);
        }
Пример #11
0
        internal GreeterClient gRPC()
        {
            var sut = new SystemUnderTest <gRPC.Startup>();

            var channel = GrpcChannel.ForAddress(sut.HttpClient.BaseAddress, new GrpcChannelOptions()
            {
                HttpClient = sut.HttpClient
            });

            var client = new GreeterClient(channel);

            return(client);
        }
        public void Setup()
        {
            // If you don't generate certificate -> use this code
            //var httpHandler = new HttpClientHandler();
            //// Return `true` to allow certificates that are untrusted/invalid
            //httpHandler.ServerCertificateCustomValidationCallback =
            //    HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;

            channel = GrpcChannel.ForAddress("https://localhost:5001"); // new GrpcChannelOptions { HttpHandler = httpHandler }
            client  = new Greeter.GreeterClient(channel);

            channelMovie = GrpcChannel.ForAddress("https://localhost:5001"); // new GrpcChannelOptions { HttpHandler = httpHandler }
            movieClient  = new MovieServiceClient(channelMovie);
        }
Пример #13
0
        private static async Task GreeterRequestInsecure(GrpcChannel channel)
        {
            try
            {
                var client = new GreeterClient(channel);
                var reply  = await client.SayHelloAsync(new HelloRequest { Name = "GreeterClient" });

                Console.WriteLine("Greeting: " + reply.Message);
            }
            catch (Grpc.Core.RpcException ex) when(ex.StatusCode == StatusCode.Unauthenticated)
            {
                Console.WriteLine("Failed to make insecure Call to secure endpoint. Thats good! :)");
            }
        }
Пример #14
0
        static void Main(string[] args)
        {
            var name = "Lucedy";

            using var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client = new GreeterClient(channel);

            var response = client.SayHello(new GrpcService.HelloRequest {
                Name = name
            });

            Console.WriteLine($"{response.Message}!");
            Console.ReadLine();
        }
Пример #15
0
        private static async Task RunBiStream(GreeterClient client)
        {
            var duplex = client.Echo();

            await foreach (var item in duplex.ResponseStream.ToEnumerable())
            {
                var message = item.Message;
                if (message.Length > 10000)
                {
                    message = "Let's start again";
                }
                Console.WriteLine(message);
                await duplex.RequestStream.WriteAsync(new EchoMessage { Message = message });
            }
        }
Пример #16
0
        /// <summary>
        /// 使用依赖注入的方式
        /// </summary>
        /// <returns></returns>
        static async Task CreateClient2()
        {
            ServiceCollection services = new ServiceCollection();

            services.AddGrpcClient <GreeterClient>(options =>
            {
                options.Address = new Uri("https://localhost:5001");
            });
            await Task.Delay(1000);


            var           serviceProvider = services.BuildServiceProvider();
            GreeterClient service         = serviceProvider.GetRequiredService <GreeterClient>();
            //  service.SayHelloStreaml
            // await ServerStreamingCallExample(service);
        }
Пример #17
0
        static async Task Main(string[] args)
        {
            using var channel = GrpcChannel.ForAddress("https://localhost:5001/");
            var client = new GreeterClient(channel);


            var request = new HelloRequest
            {
                Name = "Pedro"
            };

            var response = await client.SayHelloAsync(request);

            Console.WriteLine(response.Message);
            Console.ReadKey();
        }
Пример #18
0
        private static void Main(string[] args)
        {
            using var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client = new GreeterClient(channel);

            var request = new HelloRequest
            {
                Name = "your name"
            };

            var helloReply = client.SayHello(request);

            Console.WriteLine(helloReply.Message);
            Console.WriteLine("Hello World!");

            Console.ReadLine();
        }
Пример #19
0
        private static async Task DeleteUser(GreeterClient client)
        {
            Console.WriteLine("Inserte nombre de usuario");
            string name = Console.ReadLine();

            while (name.Trim().Equals(""))
            {
                name = Console.ReadLine();
            }
            var user = new UserRpc
            {
                Name = name
            };
            var response = await client.RemoveUserAsync(user);

            Console.WriteLine(response.Message);
        }
Пример #20
0
        static async Task Main(string[] args)
        {
            try
            {
                var channel = GrpcChannel.ForAddress("https://localhost:5001");
                var client  = new GreeterClient(channel);
                var reply   = await client.SayHelloAsync(new HelloRequest { Name = "Ian" });

                Console.WriteLine(reply.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.InnerException);
            }

            Console.ReadLine();
        }
Пример #21
0
        private static async Task RunFeedMe(GreeterClient client)
        {
            var feedMeRequest = client.FeedMe();
            var random        = client.GetRandomNumberStream(new Empty());


            await foreach (var item in random.ResponseStream.ToEnumerable())
            {
                await feedMeRequest.RequestStream.WriteAsync(new FoodMessage { Value = item.Number });

                await Task.Delay(2000);
            }

            await feedMeRequest.RequestStream.CompleteAsync();

            var result = await feedMeRequest.ResponseAsync;

            Console.WriteLine(result.Message);
            Console.WriteLine(result.Total);
            Console.WriteLine(string.Join(',', result.AllValues));
        }
Пример #22
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    GreeterClient client = context.RequestServices.GetService <GreeterClient>();
                    HelloRequest request = new HelloRequest();
                    request.Name         = "Charles";
                    var reply            = await client.SayHelloAsync(request);

                    await context.Response.WriteAsync(reply.Message);
                });
            });
        }
Пример #23
0
        private static async Task ServerStreamingCallExample()
        {
            var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client  = new GreeterClient(channel);
            var cts     = new CancellationTokenSource();

            cts.CancelAfter(TimeSpan.FromSeconds(80));

            using var call = client.SayHelloStream1(new HelloRequest { Name = "零度" }, cancellationToken: cts.Token);

            try
            {
                await foreach (var message in call.ResponseStream.ReadAllAsync())
                {
                    Console.WriteLine("Greeting: " + message.Message);
                }
            }
            catch (RpcException ex) when(ex.StatusCode == StatusCode.Cancelled)
            {
                Console.WriteLine("Stream cancelled.");
            }
        }
Пример #24
0
        private static async Task ModifyUser(GreeterClient client)
        {
            Console.WriteLine("Inserte nombre de usuario a modificar");
            string name = Console.ReadLine();

            while (name.Trim().Equals(""))
            {
                name = Console.ReadLine();
            }
            Console.WriteLine("Inserte el nuevo nombre (deje vacio para no cambiar)");
            string newName = Console.ReadLine();

            Console.WriteLine("Inserte nueva contraseña (deje vacio para no cambiar)");
            string password = Console.ReadLine();
            var    user     = new UserUpdate
            {
                Name        = name,
                NewName     = newName,
                NewPassword = password
            };
            var response = await client.ModifyUserAsync(user);

            Console.WriteLine(response.Message);
        }
Пример #25
0
        private static async Task ABMMenuAsync(GreeterClient client)
        {
            Console.WriteLine(separador);
            Console.WriteLine("Ingresa que tipo de operacion deseas realizar \n 1-Alta \n 2-Baja \n 3-Modificacion");
            var input = Console.ReadLine();

            switch (input)
            {
            case "1":
                RegisterUser(client);
                break;

            case "2":
                DeleteUser(client);
                break;

            case "3":
                ModifyUser(client);
                break;

            default:
                break;
            }
        }
Пример #26
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            //NLoggerWrapper.InitConfig();
            //DotBPE.Rpc.Environment.SetLogger(new NLoggerWrapper(typeof(Program)));

            var client  = AmpClient.Create("127.0.0.1:6201");
            var greeter = new GreeterClient(client);
            int i       = 0;

            while (i < 100)
            {
                Console.WriteLine("请输入你的名称");
                string name = Console.ReadLine();
                if ("bye".Equals(name))
                {
                    break;
                }
                try
                {
                    var request = new HelloRequest()
                    {
                        Name = name
                    };
                    greeter.HelloAsync(request).ContinueWith(task => {
                        Console.WriteLine($"---------------收到服务端返回:{task.Result.Message}-----------");
                    });
                    i++;
                }
                catch (Exception ex) {
                    Console.WriteLine("发生错误:" + ex.Message);
                }
            }
            Console.ReadKey();
        }
 public CreateModel(GreeterClient greeterClient)
 {
     _greeterClient = greeterClient;
 }
Пример #28
0
 public Worker(ILogger <Worker> logger, GreeterClient grpcClient)
 {
     _logger     = logger;
     _grpcClient = grpcClient;
 }
Пример #29
0
        private static async Task <string> GetGoodbye(GreeterClient client)
        {
            var response = await client.SayByeAsync(new CommonRequest { Name = "GreeterClient" });

            return(response.Message);
        }
Пример #30
0
 public ClientTestGrpc(TestScope testScope, GreeterClient greeterClient)
 {
     _testScope     = testScope;
     _greeterClient = greeterClient;
 }