70+专家分享实战经验,2024年度AI最佳实践都在AICon北京 了解详情
写点什么

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

  • 2020-07-06
  • 本文字数:1032 字

    阅读完需:约 3 分钟

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

最近,微软发布了.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 的信息可以在这里找到。


原文链接


Microsoft Releases gRPC-Web for .NET


2020-07-06 14:0115618

评论

发布
暂无评论
发现更多内容

蓝易云 - 文本溢出解决text-overflow: ellipsis;不生效的问题

百度搜索:蓝易云

云计算 运维 云服务器 高防服务器 text-overflow: ellipsis;

网络安全作业二

白开水又一杯

边缘计算技术:为什么边缘计算平台如此重要?

3DCAT实时渲染

边缘计算 实时云渲染 边缘计算平台

解锁思维无限,Tinderbox 10 mac笔记工具让创意触手可及!

Rose

Topaz Video AI 专注于完成视频增强任务:去隔行扫描、放大和运动插值

Rose

Three-Body Technology Phoenix Growl 1.6.0 鸾和唢呐音源插件

iMac小白

拯救我的期末大作业,小浣熊助我高分轻松飘过

白日梦

小浣熊

FiveNotes for mac(小型文本编辑器)v3.0.2激活版

Rose

TaD+RAG-缓解大模型“幻觉”的组合新疗法

京东零售技术

人工智能 LLM 大模型幻觉 企业号2024年7月PK榜

Proxyman Premium for Mac(网络调试和分析工具)v5.6.1激活版

Rose

智启未来—我与小浣熊共绘高效办公新篇章

申公豹

小浣熊

小浣熊办公助手:重塑数据分析新体验

乌龟哥哥

光标快速移动和管理窗口的工具 Rectangle Pro for Mac

Rose

FSNotes for mac 文本处理软件 包括纯文本、Markdown和富文本格式(RTF)

Rose

Jutoh for Mac(电子书制作软件)v3.18.4中文注册版

Rose

Three-Body Technology Heavier7Strings 1.7.0 虚拟吉他插件

iMac小白

EasyAnimate-v3版本支持I2V及超长视频生成

阿里云大数据AI技术

AIGC 视频生成 EasyAnimate 图片生成视频

数据分析不求人,用办公小浣熊,谁来都能做数据分析!

直须

如何挑选适合您项目的横道图软件

爱吃小舅的鱼

项目进度 横道图

专业级音频制作软件:Logic Pro X for Mac 中文激活版

你的猪会飞吗

mac软件下载 Mac破解软件

蓝易云 - SAAS系统建站的优势是什么

百度搜索:蓝易云

云计算 运维 SaaS 云服务器 服务器租用

GPT-4与Data Analysis:【机器学习】自然语言处理的新前沿

蓉蓉

openai gpt4o

Mac平台XLIFF文件编辑工具Xliff Editor for Mac

Rose

FontLab for Mac 轻松设计各种字体样式

Rose

Three-Body Technology Lost Soul 1.6.0 千里洞箫音源插件

iMac小白

小浣熊不单单是方便面,还是办公的“方方面面”

IT蜗壳-Tango

Microsoft Remote Desktop Beta:无缝连接,跨平台办公新体验!

Rose

蓝易云 - 在k8s中用label控制Pod部署到指定的node上

百度搜索:蓝易云

云计算 Kubernetes 运维 k8s Node

蓝易云 - PHP8的匿名函数-PHP8知识详解

百度搜索:蓝易云

php Linux 运维 Web 云服务器

智能办公新篇章:商汤小浣熊助力前端数据分析革命

三掌柜

商汤 商汤科技 小浣熊家族 小浣熊

微软发布gRPC-Web实现,可直接在浏览器端调用gRPC服务_大前端_Arthur Casals_InfoQ精选文章