像请求服务的名称,方法的名称,请求类型POST或者GET,编码类型,超时时间等信息是存储在头帧里,服务器端接收到头帧后,进行解析就可以获得这些信息。
在客户端一侧,请求方法中的参数值,是通过数据帧传递过去的。
在服务器端一侧,请求方法执行的结果,也是通过数据帧传递给客户端的。
接下来,看一下,grpc客户端如何创建头帧的?
1、如何创建头帧? |
顺便找一个客户端测试用例;
从main.go文件开始,方法的调用链如下所示:
main.go→SayHello→SayHello→Invoke →invoke →newClientStream→newStream→NewStream
或者,
直接进入grpc-go/internal/transport/http2_client.go文件中的NewStream方法里:
1.func (t *ht