微软在今年1月宣布了对.NET的gRPC-Web的实验支持,现已正式发布。 gRPC是Google的开源,高性能,通用RPC框架,它支持包括.NET在内的多种编程语言。它是面向移动设备的,并且基于HTTP / 2标准进行设计,但是当前,无法在浏览器中实现gRPC HTTP / 2规范,因为没有浏览器API可以提供对请求的足够细粒度的控制。 gRPC-Web是解决此问题的标准化协议,并使gRPC在浏览器中可用。 gRPC-Web代表用于Web客户端的gRPC。它是一个JavaScript库,使Web应用程序可以直接与后端gRPC服务进行通信,而无需HTTP服务器充当中介。它旨在使gRPC在更多情况下可用,包括但不限于:从浏览器调用ASP.NET Core gRPC应用程序JavaScript SPAs.NET Blazor Web Assembly应用程序在IIS和Azure App Service中托管ASP.NET Core gRPC应用程序程序调用来自非.NET Core平台的gRPC-在所有.NET平台上,HttpClient不支持HTTP / 2,并且gRPC-Web可用于从Blazor和Xamarin调用gRPC服务。微软表示,它正在与Blazor团队合作制作gRPC。当在Blazor WebAssembly应用程序中使用Web时,Web可为端到端开发人员提供更好的体验。根据Microsoft的说法,gRPC比JSON具有明显的性能优势。以Blazor的默认模板为例。与JSON相比,使用gRPC时,在数据提取页面上传输的数据减半,并且数据大小也从627字节减少到309字节。当前,.NET版本的gRPC-Web已在NuGet上发布:Grpc.AspNetCore.Web-将gRPC-Web支持添加到ASP.NET Core gRPC服务Grpc.Net.Client.Web-从.NET Web调用gRPC-端点有关gRPC-Web的更多信息,您可以查看文档或尝试使用gRPC-Web的示例应用程序。