diff --git a/http.go b/http.go index 67a8e92..912db40 100644 --- a/http.go +++ b/http.go @@ -637,6 +637,10 @@ func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...c if v, ok := os.LookupEnv("MICRO_PROXY"); ok { exchange = v } + // get the exchange + if len(options.Exchange) > 0 { + exchange = options.Exchange + } omd, ok := metadata.FromOutgoingContext(ctx) if !ok { @@ -648,7 +652,11 @@ func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...c for _, p := range ps { md := metadata.Copy(omd) md[metadata.HeaderContentType] = p.ContentType() - + topic := p.Topic() + if len(exchange) > 0 { + topic = exchange + } + md.Set(metadata.HeaderTopic, topic) iter := p.Metadata().Iterator() var k, v string for iter.Next(&k, &v) { @@ -672,15 +680,6 @@ func (h *httpClient) publish(ctx context.Context, ps []client.Message, opts ...c body = b } - topic := p.Topic() - if len(exchange) > 0 { - topic = exchange - } - - for k, v := range p.Metadata() { - md.Set(k, v) - } - md.Set(metadata.HeaderTopic, topic) msgs = append(msgs, &broker.Message{Header: md, Body: body}) }