我已经定义了一个客户机和服务器。它们都有一个ctx(上下文)作为参数,客户机和服务器通过grpc进行通信。
type Client interface {
GetFileVersion(ctx context.Context, in *Req) (*Resp, error)
}
type client struct {
cc *grpc.ClientConn
}
func (c *client) GetFileVersion(ctx context.Context, in *Req) (*Resp, error) {
out := new(Resp)
err := grpc.Invoke(ctx, "/testpb/GetFileVersion", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
type Server interface {
GetFileVersion(context.Context, *Req) (*Resp, error)
}如果我在客户端实现GetFileVersion时在ctx中设置值,那么可以在服务器中获得这个值吗?
ctx = context.WithValue(parent, "test", 123)发布于 2018-10-16 07:03:26
context是全局请求变量的通用注册表。它不应该转义请求范围。考虑换一种方法。
https://stackoverflow.com/questions/52829481
复制相似问题