gpt4 book ai didi

go - grpc中能否传输context的内容?

转载 作者:IT王子 更新时间:2023-10-29 02:31:17 27 4
gpt4 key购买 nike

我已经定义了客户端和服务器。它们都有一个ctx(context)作为参数,client和server通过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 是全局请求 变量的通用注册表。它不应该逃脱请求范围。考虑换一种方式。

关于go - grpc中能否传输context的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52829481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com