我试图了解gRPC如何使用HTTP2发送流消息?链接https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md说,
“长度前缀消息项的重复序列在DATA帧中传递”
通过阅读此声明,我的理解是,每个(protobuf)消息均由gRPC封装在HTTP2数据帧中并发送出去。如果是这样,那么gRPC为什么需要在消息后附加“长度前缀”,难道它不能简单地读取完整的数据帧主体并将其假定为一条完整的消息吗?
我在这里想念什么?
答案 0 :(得分:0)
缺少的部分是不能保证一个DATA帧仅包含一个gRPC消息。 gRPC消息是充当HTTP / 2的有效负载的高层流。可以按照您在官方gRPC库中描述的方式来实现它,但是就协议而言,接收带有多个gRPC PDU的某些数据帧是完全有效的。