static async Task Main(string[] args) { //Güvenilir olmayan/geçersiz sertifikayla gRPC hizmetini çağırma HttpClientHandler httpHandler = new HttpClientHandler(); httpHandler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; //Güvenilir olmayan/geçersiz sertifikayla gRPC hizmetini çağırma GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions { HttpHandler = httpHandler }); CustomerClient client = new CustomerClient(channel); #region Unary CustomerRequest request = new CustomerRequest { CustomerId = 1 }; var callUnary = await client.GetCustomerUnaryAsync(request); Console.WriteLine($"{callUnary.Name} ,{callUnary.Email},{callUnary.Adress},{callUnary.Age}"); #endregion #region Server Streaming CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); using (var callServerStream = client.GetCustomerServerStream(new Empty())) { while (await callServerStream.ResponseStream.MoveNext(cancellationTokenSource.Token)) { //herhangi bir yerde iptal tokene gönderebiliriz //cancellationTokenSource.Cancel(); CustomerResponse currentCustomer = callServerStream.ResponseStream.Current; Console.WriteLine($"{currentCustomer.Name} ,{currentCustomer.Email},{currentCustomer.Adress},{currentCustomer.Age}"); } } #endregion #region Client Streaming using (var callClientStream = client.GetCustomersClientStream()) { for (int i = 1; i <= 3; i++) { await callClientStream.RequestStream.WriteAsync(new CustomerRequest { CustomerId = i }); } await callClientStream.RequestStream.CompleteAsync();// steam'i bitirdik CustomersResponse response = await callClientStream; foreach (var customer in response.Customer) { Console.WriteLine($"{customer.Name} ,{customer.Email},{customer.Adress},{customer.Age}"); } } #endregion #region Bi-Directional Streaming CancellationTokenSource cancellationTokenSource2 = new CancellationTokenSource(); using (var callBiDirectionalStream = client.GetCustomersBiDirectionalStream()) { Console.WriteLine("Başla"); var readTask = Task.Run(async() => { while (await callBiDirectionalStream.ResponseStream.MoveNext(cancellationTokenSource.Token)) { Console.WriteLine(callBiDirectionalStream.ResponseStream.Current); } }); for (int i = 1; i <= 3; i++) { await callBiDirectionalStream.RequestStream.WriteAsync(new CustomerRequest { CustomerId = i }); await Task.Delay(TimeSpan.FromSeconds(2)); } await callBiDirectionalStream.RequestStream.CompleteAsync(); await readTask; Console.WriteLine("Bitir"); } #endregion Console.ReadLine(); }