Rest grpc和websocket的区别是什么?哪一个更适合双向流连接?

Rest grpc和websocket的区别是什么?哪一个更适合双向流连接?,rest,websocket,rpc,grpc,http2,Rest,Websocket,Rpc,Grpc,Http2,我想以双向流的方式开发一个客户机-服务器应用程序 grpc或websocket哪种技术更适合于此?grpc实际上不是比较的相关部分,而是grpc使用HTTP/2,这当然可以与websocket进行比较 这篇文章很好地概括了它们。本质上,HTTP/2是客户端/服务器,服务器推送在后台,因此您可以发出请求,只需停留在该连接上监听更新,而无需轮询 虽然WebSocket不会因为HTTP/2而消失,但对于以“当更新发生时,请告诉我与我刚才所做的事情相关”为中心的用例,它们可能不被认为是必要的。gRPC

我想以双向流的方式开发一个客户机-服务器应用程序


grpc或websocket哪种技术更适合于此?

grpc实际上不是比较的相关部分,而是grpc使用HTTP/2,这当然可以与websocket进行比较

这篇文章很好地概括了它们。本质上,HTTP/2是客户端/服务器,服务器推送在后台,因此您可以发出请求,只需停留在该连接上监听更新,而无需轮询


虽然WebSocket不会因为HTTP/2而消失,但对于以“当更新发生时,请告诉我与我刚才所做的事情相关”为中心的用例,它们可能不被认为是必要的。

gRPC是HTTP/2之上的API/协议,因此比较HTTP/2和WebSocket更为相关

注意:HTTP/2服务器推送在这里也不相关。这是对可缓存(GET)资源的一种支持

Websocket和HTTP/2支持低开销(几个字节)的二进制数据帧,但是Websocket中的帧(整个负载)在发送方被屏蔽,然后在接收方被解除屏蔽。看

使用HTTP/2,您可以在同一连接上多路传输多个流。如果需要,在使用Websocket时,这需要由应用程序开发人员或库来处理


如果您的客户端是浏览器,那么答案可能与此相关。

好吧,gRpc适合双向流媒体,gRpc基本上运行在HTTP/2上,其中以二进制格式传输数据,因此它加快了数据流的速度。我认为grpc在双向数据流方面比web socket发挥得更好。虽然我们正在讨论这一点,但这与此比较没有直接关系,但值得一读。这不仅是一个非常好的文档,而且是必须阅读的!谢谢你提供的链接!也许你知道答案:这只是这个答案的自信基调在推高选票吗?“gRPC并不是真正用于比较的相关部分”-为什么不?gRPC允许双向通信。“WebSocket…可能不被认为是必要的”-为什么?答案与当前形式的问题所涉及的主题不同。gRPC构建在HTTP/2之上,因此比较WebSocket和HTTP/2更合适。这篇文章解释说,HTTP/2可以处理WebSockets经常用来解决的一些用例,但不能解决所有这些用例。我觉得答案和文章都很清楚。