gRPC与SignalR在浏览器应用中的对比及Protobuf协议详解
gRPC在浏览器中的应用局限及gRPC-Web的配置
gRPC是一种高效的通信机制,适用于微服务之间的直接通信,它基于HTTP/2使用高效的Protobuf消息协议,既能进行同步的请求 - 响应调用,也能实现客户端与服务器之间的异步数据双向流。然而,由于浏览器不完全支持HTTP/2,gRPC无法直接在浏览器中工作。不过,已经有了专门的gRPC - Web实现来在浏览器中启用gRPC,但它存在严重的局限性,如需要许多设置步骤、效率远低于标准gRPC,并且不支持客户端流调用。
若要在服务器应用中启用gRPC - Web,需要进行以下操作:
1. 添加NuGet引用 :在项目文件夹内执行以下命令,为 StatusMicroservice
项目添加 Grpc.AspNetCore.Web
NuGet引用。
dotnet add StatusMicroservice.csproj package Grpc.AspNetCore.Web
- 启用gRPC - Web组件并处理CORS请求 :在
Startup
类的ConfigureServices
方法中添加以下代码,使应用接受带有特定头的CORS请求。