在瀏覽器應用程式中使用 gRPC
注意
這不是這篇文章的最新版本。 如需目前的版本,請參閱 本文的 .NET 9 版本。
警告
不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .NET 8 版本。
您無法直接從瀏覽器呼叫 gRPC 服務。 gRPC 使用 HTTP/2 功能,而且沒有瀏覽器提供透過 Web 要求支援 gRPC 用戶端所需的控制層級。
ASP.NET Core 上的 gRPC 提供兩個瀏覽器相容方案:gRPC-Web 和 gRPC JSON 轉碼。
gRPC-Web
gRPC-Web 允許瀏覽器應用程式使用 gRPC-Web 用戶端和 Protobuf 來呼叫 gRPC 服務。
- 其與一般 gRPC 類似,但有線通訊協定稍微不同,這使其與 HTTP/1.1 和瀏覽器相容。
- 需要瀏覽器應用程式從
.proto
檔案產生 gRPC 用戶端。 - 可讓瀏覽器應用程式受益於二進位訊息的高效能和低網路使用量。
.NET 具有 gRPC-Web 的內建支援。 如需詳細資訊,請參閱 ASP.NET Core gRPC 應用程式中的 gRPC-Web。
gRPC JSON 轉碼
gRPC JSON 轉碼可讓瀏覽器應用程式呼叫 gRPC 服務,就像它們是具有 JSON 的 RESTful API 一樣。
- 瀏覽器應用程式不需要產生 gRPC 用戶端或知道 gRPC 的任何資訊。
- 使用 HTTP 中繼資料來標註
.proto
檔案,可以自動從 gRPC 服務建立 RESTful API。 - 允許應用程式同時支援 gRPC 和 JSON Web API,而不需要複製為兩者建置個別服務的工作。
.NET 具有從 gRPC 服務建立 JSON Web API 的內建支援。 如需詳細資訊,請參閱 ASP.NET Core gRPC 應用程式中 的 gRPC JSON 轉碼。
注意
gRPC JSON 轉碼需要 .NET 7 或更新版本。