INNER CODE UNIT · Go
func
go-kratos/gateway · client/client.go:29
func (c *client) Close() error {
c.applier.Cancel()
return nil
}
func (c *client) RoundTrip(req *http.Request) (resp *http.Response, err error) {
ctx := req.Context()
reqOpt, _ := middleware.FromRequestContext(ctx)
filter, _ := middleware.SelectorFiltersFromContext(ctx)
n, done, err := c.selector.Select(ctx, selector.WithNodeFilter(filter...))
if err != nil {
return nil, err
}
reqOpt.CurrentNode = n
addr := n.Address()
reqOpt.Backends = append(reqOpt.Backends, addr)
backendNode := n.(*node)