我想以双向流的方式开发一个客户端-服务器应用程序。
grpc和websocket哪种技术更适合做这件事?
发布于 2018-01-05 20:39:26
gRPC并不是真正用于比较的相关部分,它是gRPC使用的HTTP/2,它当然可以与WebSockets进行比较。
https://www.infoq.com/articles/websocket-and-http2-coexist
这篇文章很好地概述了它们。从本质上讲,HTTP/2是具有后台服务器推送的客户机/服务器,因此您可以发出请求并简单地停留在该连接上,例如,无需轮询就可以监听更新。
虽然WebSockets不会因为超文本传输协议/2而消失,但对于以“让我知道与我刚刚做的事情相关的更新发生时”为中心的用例来说,它们可能并不是必要的。
发布于 2020-01-11 08:07:23
gRPC是HTTP/2之上的一种应用程序接口/协议,因此比较HTTP/2和Websockets更有意义。
注意:/2服务器推送在这里也与HTTP无关。这是可缓存(GET)资源的website optimization technique。
Websocket和HTTP/2支持低开销(几个字节)的二进制数据帧,但是Websocket中的帧(整个有效载荷)在发送端被屏蔽,然后在接收端被取消屏蔽。参见What is the mask in a WebSocket frame?。
使用HTTP/2,您可以在同一连接上多路复用多个流。这需要在使用Websocket时由应用程序开发人员或库处理-如果需要的话。
如果您的客户端是浏览器,那么HTTP/2 or Websockets for low latency client to server messages的答案可能是相关的。
https://stackoverflow.com/questions/46904674
复制相似问题