Может ли содержимое контекста передаваться в grpc? - PullRequest
0 голосов
/ 16 октября 2018

Я определил клиента и сервер.Все они имеют ctx (context) в качестве параметра, клиент и сервер взаимодействуют по 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)
}

Если я установлю значение в ctx в реализации GetFileVersion в клиенте, могу ли я получить это значение на сервере?

ctx = context.WithValue(parent, "test", 123)

1 Ответ

0 голосов
/ 16 октября 2018

context - это реестр общего назначения для глобальных запросов переменных.Он не должен выходить за рамки запроса.Подумайте об этом по-другому.

...