阅读 MassTransit Response-Request 中的回复 headers
Read headers of response in MassTransit Response-Request
我正在将 MassTransit v.5* 与 Rabbit MQ 一起使用,我正在做一个正常的 Request-Response,如 http://masstransit-project.com/MassTransit/usage/request-response.html 中那样。
我在消费者的响应消息上设置了一个 header
await context.RespondAsync<OrderStatusResult>(
new
{
OrderId = order.Id,
Timestamp = order.Timestamp,
StatusCode = order.StatusCode,
StatusText = order.StatusText
}
, callback => callback.Headers.Set("key", "value"))
我看到这个 headers 是通过查看 RabbitMQ 设置的,但是在调用者端我无法访问这些 header.
那么,我怎样才能在来电端访问 header 的响应消息?
谢谢!
使用新的请求客户端,而不是原来的客户端,您可以通过响应访问消息上下文。
var client = Bus.CreateRequestClient<GetOrderStatus>(ServiceAddress);
var request = new GetOrderStatus(...);
var response = await client.GetResponse<OrderStatusResult>(request);
// response is type Response<OrderStatusResult>
var headerValue = response.Headers.Get...("key")
我正在将 MassTransit v.5* 与 Rabbit MQ 一起使用,我正在做一个正常的 Request-Response,如 http://masstransit-project.com/MassTransit/usage/request-response.html 中那样。
我在消费者的响应消息上设置了一个 header
await context.RespondAsync<OrderStatusResult>(
new
{
OrderId = order.Id,
Timestamp = order.Timestamp,
StatusCode = order.StatusCode,
StatusText = order.StatusText
}
, callback => callback.Headers.Set("key", "value"))
我看到这个 headers 是通过查看 RabbitMQ 设置的,但是在调用者端我无法访问这些 header.
那么,我怎样才能在来电端访问 header 的响应消息?
谢谢!
使用新的请求客户端,而不是原来的客户端,您可以通过响应访问消息上下文。
var client = Bus.CreateRequestClient<GetOrderStatus>(ServiceAddress);
var request = new GetOrderStatus(...);
var response = await client.GetResponse<OrderStatusResult>(request);
// response is type Response<OrderStatusResult>
var headerValue = response.Headers.Get...("key")