日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

微软发布 gRPC-Web 实现,可直接在浏览器端调用 gRPC 服务

發布時間:2023/11/22 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 微软发布 gRPC-Web 实现,可直接在浏览器端调用 gRPC 服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  原文鏈接:Microsoft Releases gRPC-Web for .NET

  最近,微軟發布了 .NET 的 gRPC-Web 協議實現。該組件最初是作為一個實驗特性,現在是grpc-dotnet項目的一部分。有了該組件,就可以在瀏覽器中使用 gRPC,Web 應用程序可以不通過 HTTP 代理服務器直接與 gRPC 服務通信。

  gRPC最初由谷歌開發,是一個高性能遠程過程調用框架,基于 HTTP/2 實現。但由于瀏覽器沒有直接暴露 HTTP/2,所以 Web 應用程序不能直接使用 gRPC。gRPC- Web 是一個標準化協議,它解決了這個問題,可以在瀏覽器中使用 gRPC。

  今年早些時候,微軟宣布將 gRPC-Web 作為一個實驗項目。當時,ASP.NET Core 首席軟件工程師 James Newton-King 表示該項目并不是一個正式項目:

我們想測試一下我們的 gRPC-Web 實現,并獲取反饋,看看與使用代理相比,這種方法對 .NET 開發人員來說是否有用。

  第一個 gRPC-web 實現是在 2018 年作為一個JavaScript 庫發布的,Web 應用程序可以通過它直接與 gRPC 服務通信,無需使用 HTTP 服務器作為代理。其原理是創建與 HTTP/1.1 和 HTTP/2 兼容的端到端 gRPC 管道,然后瀏覽器發送常規的 HTTP 請求,位于瀏覽器和服務器之間的 gRPC-Web 代理對請求和響應進行轉換。與 gRPC 類似,gRPC-Web 在 Web 客戶端和后端 gRPC 服務之間使用預定義的契約。Protocol Buffers 被用來序列化和編碼消息 (盡管也可以使用其他編碼器)。

  圖片來源:gPRC 官網

  有了這個新組件,.NET Blazor WebAssembly 應用程序和 JavaScript SPA 就可以從在瀏覽器里直接調用 ASP.NET Core gRPC 應用程序。他們還提供了一個替代在 IIS 和 Azure App Service 服務器上托管 ASP.NET Core gRPC 應用程序的方案,因為它們目前都不能托管 gRPC 服務。

  不過,在瀏覽器端使用 gRPC-Web 調用 gRPC 服務存在一些限制:不支持客戶端流和雙向流調用,并且跨域調用 gRPC 服務需要在服務器端配置 CORS。另外,gRPC 服務器端必須配置為支持 gRPC-Web,或者必須有第三方服務代理(例如Envoy) 在瀏覽器和服務器之間對調用進行轉換。

  在新的版本中,微軟更新了原始的項目文檔,并公開了一個 gRPC-Web 示例應用程序。gRPC-Web 在 NuGet 上有兩個獨立的包:Grpc.AspNetCore.Web(向 ASP.NET Core gRPC 服務添加 gRPC-Web 支持) 和gRPC.NET.Client.Web(可在 .NET 中調用 gRPC-Web 端點)。該組件需要 3.1 或更高版本的 .NET Core SDK,可在 Visual Studio 2019(16.4 或更高版本)、Visual Studio Code 和 Visual Studio for Mac (8.4 或更高版本) 中使用。更多有關 gRPC-Web 的信息可以在這里找到。

總結

以上是生活随笔為你收集整理的微软发布 gRPC-Web 实现,可直接在浏览器端调用 gRPC 服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。