gRPC-веб-поддержка потоковой передачи клиентов в .Net?

#c# #asp.net-core #grpc #grpc-web #grpc-dotnet

Вопрос:

Я работал над примером приложения для реализации связи gRPC от клиента(.Net framework или .Net core 2.1) на сервер gRPC(.Net Core 3.1) в режиме потоковой передачи клиента. Я много раз читал, что в gRPC web возможна только унарная и серверная потоковая передача.

Однако, когда я реализовал веб-клиент gRPC с помощью Grpc.Net.Client.Пакет Web Nuget, я вижу, что потоковая передача клиентов возможна. Мой сервер gRPC-это проект Asp.NETCore 3.1 с включенной поддержкой gRPCWeb.

На стороне Сервера:

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();
            *app.UseGrpcWeb();*
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGrpcService<GreeterService>();
                endpoints.MapGrpcService<ClientStreamingExampleService>()*.EnableGrpcWeb();*

                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
                });
            });
        }
 

Сторона клиента:

  var channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions
            {
                HttpHandler = new GrpcWebHandler(new HttpClientHandler() { UseProxy = false })
            })  ;
          

            var client = new clientstreamingexampleClient(channel);
            var dataRequest = client.SendData();
            foreach (var name in new[] { "text11", "text12", "text13", "text14", "text15" })
            {
                await dataRequest.RequestStream.WriteAsync(new MyDataStreamRequest { Name = name });
            }
 

Пожалуйста, помогите мне, если что-то не так с моим пониманием.

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.