servicestack 如何在使用RabbitMQ RPC和ServiceStack时收到响应消息的通知,servicestack,rabbitmq,servicestack,Rabbitmq" /> servicestack 如何在使用RabbitMQ RPC和ServiceStack时收到响应消息的通知,servicestack,rabbitmq,servicestack,Rabbitmq" />

servicestack 如何在使用RabbitMQ RPC和ServiceStack时收到响应消息的通知

servicestack 如何在使用RabbitMQ RPC和ServiceStack时收到响应消息的通知,servicestack,rabbitmq,servicestack,Rabbitmq,在正常情况下,带有回复的消息将发布到response.inq中,我理解这一点,这是一种通知其他方“发生了什么”的好方法。但是,当使用RPC模式时,响应返回临时队列并消失。这是正确的吗?除了发布另一条消息外,是否有一种方便的方式来实现自动通知的这种行为?中的文档描述了通过ServiceStack.RabbitMQ调用服务的正常消息工作流: 请求/答复 通过指定自己的ReplyTo地址来更改默认消息流,以更改发布响应的队列,例如: const string replyToMq = mqClient

在正常情况下,带有回复的消息将发布到response.inq中,我理解这一点,这是一种通知其他方“发生了什么”的好方法。但是,当使用RPC模式时,响应返回临时队列并消失。这是正确的吗?除了发布另一条消息外,是否有一种方便的方式来实现自动通知的这种行为?

中的文档描述了通过ServiceStack.RabbitMQ调用服务的正常消息工作流:

请求/答复 通过指定自己的
ReplyTo
地址来更改默认消息流,以更改发布响应的队列,例如:

const string replyToMq = mqClient.GetTempQueueName();
mqClient.Publish(new Message<Hello>(new Hello { Name = "World" }) {
    ReplyTo = replyToMq
});

IMessage<HelloResponse> responseMsg = mqClient.Get<HelloResponse>(replyToMq);
mqClient.Ack(responseMsg);
responseMsg.GetBody().Result //= Hello, World!

非常专业的post-Demis,你有没有想过ServiceStack的产品化
var mqServer = new RabbitMqServer("localhost") 
{
    PublishMessageFilter = (queueName, properties, msg) => {
        //...
    },
    GetMessageFilter = (queueName, basicMsg) => {
        //...
    }
};