【问题标题】:Can I use gRpc as a replacement of SignalR for updating notification on client-side?我可以使用 gRpc 代替 SignalR 在客户端更新通知吗?
【发布时间】:2020-04-04 12:06:41
【问题描述】:

我是 gRpc 新手,现在正在学习这项技术

我想知道 gRpc 是否可以替换 SignalR 来更新我的客户端应用程序 (React) 上的通知栏。 是这样吗?还是我应该继续使用 SignalR?

(我问它只是为了确保我理解 gRpc 技术的目的,在我读到的几篇文章中,它更像是一个 Web API 替代品,很少有人将它与 SignalR 进行比较)

谢谢! 是我

【问题讨论】:

    标签: c# asp.net reactjs signalr grpc


    【解决方案1】:

    假设您的意思是基于浏览器的客户端,那么您不能使用 gRPC。 gRPC 协议依赖于 HTTP/2 框架,尤其是发送和接收 HTTP 尾部的能力。虽然浏览器本身可以并且确实使用 HTTP/2,但当前的浏览器 API (XHR/Fetch) 不公开 HTTP/2 语义。

    不过,还有一个替代协议 gRPC-web,它支持您可以从基于浏览器的应用程序中使用的 gRPC 功能子集。鉴于它是一个不同的协议,您的服务器将需要支持它,或者您需要使用像 Envoy 这样的代理来将 gRPC-web 调用转换为 gRPC。

    【讨论】:

      【解决方案2】:

      如果它可用于服务器/客户端通信,我无法回答您的问题,请提供一些想法。 SignalR 是为了客户端和服务器之间的实时通信而制作的,因为它具有适应性,而 gRPC 受其约束(HTTP/2 和 HTTPS)更多地保留用于后端微服务通信。

      【讨论】:

      • 感谢您的回复@pedrolegold!我理解你所说的关于每种技术的目的,但想知道我是否可以这样做:我的浏览器调用我的后端来获取数据我的后端正在调用本地 gRpc 服务并返回流(而不是单一响应) - 如果它甚至可能:) 如果是这样 - 我基本上可以实现 gRpc 推送通知服务 - 但我想我的目标是高或错误的方向
      • 我正在将 gRpc 用于聊天应用程序,效果很好。 Grpc 流用于您现在想要放在屏幕上的内容,因此推送通知是错误的方法。基本上,您将一直需要一些后台 gRpc 流,并且在服务器端也是如此。有一些 Firebase 服务可以做到这一点
      猜你喜欢
      • 2018-09-07
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多