private static async Task RunStream(GreeterClient client) { await foreach (var item in Go(client, CancellationToken.None).Select((s, i) => $"{s} ({i})")) { Console.WriteLine(item); } }
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; } }
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); }
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); }
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>(); }
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(); }
private static async Task ListUsers(GreeterClient client) { var response = await client.ListUsersAsync(new ListRequest()); foreach (string user in response.Users) { Console.WriteLine(user); } }
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); }
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); } } }
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); }
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); }
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! :)"); } }
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(); }
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 }); } }
/// <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); }
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(); }
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(); }
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); }
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(); }
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)); }
// 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); }); }); }
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."); } }
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); }
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; } }
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; }
public Worker(ILogger <Worker> logger, GreeterClient grpcClient) { _logger = logger; _grpcClient = grpcClient; }
private static async Task <string> GetGoodbye(GreeterClient client) { var response = await client.SayByeAsync(new CommonRequest { Name = "GreeterClient" }); return(response.Message); }
public ClientTestGrpc(TestScope testScope, GreeterClient greeterClient) { _testScope = testScope; _greeterClient = greeterClient; }