grpc 和 websocket 有什么区别?哪一个更适合双向流媒体连接



我想以双向流式处理方式开发客户端-服务器应用程序。

什么技术更适合此,GRPC或WebSocket?

gRPC并不是真正相关的比较部分,而是gRPC使用HTTP/2,这当然可以与WebSockets进行比较。

https://www.infoq.com/articles/websocket-and-http2-coexist

本文很好地概述了它们。从本质上讲,HTTP/2是后台具有服务器推送的客户端/服务器,因此您可以发出请求,只需保持该连接即可侦听更新,而无需轮询。

虽然 WebSocket 不会因为 HTTP/2 而消失,但对于以"当与我刚刚做的事情相关的更新发生时让我知道"为中心的用例来说,它们可能不是必需的。

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

注意:HTTP/2服务器推送在这里也不相关。这是一种针对可缓存 (GET) 资源的网站优化技术。

Websocket vs HTTP/2

Websocket

和 HTTP/2 支持低开销(几个字节)的二进制数据帧,但是 Websocket 中的帧(整个有效载荷)在发送方被屏蔽,然后在接收端被取消屏蔽。请参阅 WebSocket 框架中的掩码是什么?。

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

如果您的客户端是浏览器,则 HTTP/2 或 Websockets 的低延迟客户端到服务器消息的答案可能是相关的。

最新更新