本文介绍了如何实现GRPC客户端流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用HTTP/2实现GRPC客户端流/双向流?
服务器流是有意义的,因为它可以利用服务器推送来发送对一个请求的多个响应,但我不清楚它如何通过HTTP/2进行双向消息传递,就像在WebSocket上一样。
推荐答案
GRPC将流编码为http Body。每条消息之前都有一个五字节头,由消息长度和一个标志字节组成。它不使用SERVER_PUSH或其他特定于HTTP/2的流功能。
其核心是GRPC流媒体。一元(单一请求、单一响应)和服务器流(单一请求)只是生成更干净的API或更优化的I/O行为的特殊情况。但在网络上,一切看起来都和流媒体一样。
HTTP/1规范允许但不需要流和双向连接,但有些实现不支持它们。但由于HTTP/2的本质,而不是支持它们通常要做更多的工作。此外,十年前的HTTP/2代理不会导致兼容性问题;GRPC能够与HTTP/2生态系统合作,鼓励支持流。
有关GRPC编码的更多信息,请参阅GRPC的PROTOCOL-HTTP2.md,特别是Length-Prefixed-Message
。
这篇关于如何实现GRPC客户端流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!