asp.net 我可以使用gRpc作为SignalR的替代品来更新客户端的通知吗?

14ifxucb  于 5个月前  发布在  .NET
关注(0)|答案(3)|浏览(91)

我是gRPC的新手,现在正在学习这项技术,
我想知道gRpc是否可以取代SignalR来更新我的客户端应用程序(React)上的通知栏。是这样吗?或者我应该继续使用SignalR来处理这个问题?
(我问它只是为了确保我理解gRpc技术的目的,通过我读到的一些文章,它更多的是一个Web API替代品,很少有人将其与SignalR进行比较)
谢谢!y-me

x33g5p2x

x33g5p2x1#

假设你是指基于浏览器的客户端,那么你不能使用gRPC。gRPC协议依赖于HTTP/2帧,特别是发送和接收HTTP trailer的能力。虽然浏览器本身可以并且确实使用HTTP/2,但当前的浏览器API(XHR/Fetch)不公开HTTP/2语义。
然而,还有一种替代协议gRPC-web,它支持gRPC功能的一个子集,您可以从基于浏览器的应用程序中使用。鉴于它是一种不同的协议,您的服务器将需要支持它,或者您将需要使用像Envoy这样的代理,可以将gRPC-Web调用转换为gRPC。

htzpubme

htzpubme2#

我不能回答你的问题是否可以用于服务器/客户端通信,只是提供一些想法。SignalR是为了客户端和服务器之间的真实的实时通信而设计的,因为它的适应性,而gRPC受其约束(HTTP/2和HTTPS)更多地保留用于后端微服务通信。

sd2nnvve

sd2nnvve3#

微软更喜欢在Blazor应用程序中使用SignalR。他们没有使用gRPC。我想这回答了你的问题。
如果你的WebApp是在React中构建的,并且如果一个请求在内部进行多个API调用,那么你可以在多个gRPC服务之上使用一个webAPI。然后你的API将充当所有gRPC的 Package 器,WebApp(React)将不受gRPC调用的影响。

相关问题