Go 上下文的内容能否在grpc中传输?

Go 上下文的内容能否在grpc中传输?,go,grpc,Go,Grpc,我已经定义了客户端和服务器。它们都有一个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

我已经定义了客户端和服务器。它们都有一个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)

context
是全局请求变量的通用注册表。它不应该脱离请求范围。考虑另一种方式。

<代码>上下文< /C> >是全局<强>请求<强>变量的通用注册表。它不应该脱离请求范围。考虑另一种方式。

上下文库中不存在该功能。如果您的上下文中有需要传输的值,则必须手动传输。该功能在上下文库中不存在。如果您的上下文中有需要传输的值,则必须手动进行传输。