当我阅读grpc-go的源代码时,比如grpc helloworld示例中的rsp, err := c.SayHello(context.Background(), &pb.HelloRequest{Name: name})。我知道它使用protobuf消息来发送请求和接收响应,它也使用status.proto文件中定义protobuf发送错误消息。但是我不能理解上下文是如何在客户端和服务器之间传递的。我猜它也使用pb消息,但我找不到它是在哪里定义的。还是通过http2报头帧传输?
发布于 2019-06-25 20:57:32
不清楚上下文传输是什么意思,因为context.Context只是一个没有序列化/反序列化方法的Go对象。也许你说的是GRPC metadata。据我所知,他们使用HTTP报头作为传输。
发布于 2019-08-21 08:15:26
卡西娅
客户端作为第一个参数传递的上下文与服务器接收的上下文不同。
它们都只是本地上下文处理程序。它们帮助您的本地代码检查请求是否仍在运行。因此,如果请求由于某种原因而中断,您可能会中断进程。
https://stackoverflow.com/questions/56723516
复制相似问题