ServiceStack MessageFactory发布

时间:2012-11-10 17:53:47

标签: redis messaging servicestack

我一直在使用Redis文档查看ServiceStack Messaging:

https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-redis

它似乎很好地解释了基础知识。我不太明白的是,通过MessageFactory发布时的差异和适用的用例:

.CreateMessageProducer.Publish()

.CreateMessageQueueClient.Publish()

我计划审核代码,但希望在此处发布此“官方”解释。

1 个答案:

答案 0 :(得分:4)

以下是IMessageProducerIMessageQueueClient的API:

public interface IMessageProducer : IDisposable
{
    void Publish<T>(T messageBody);
    void Publish<T>(IMessage<T> message);
}

public interface IMessageQueueClient : IMessageProducer
{
    void Publish(string queueName, byte[] messageBytes);
    void Notify(string queueName, byte[] messageBytes);
    byte[] Get(string queueName, TimeSpan? timeOut);
    byte[] GetAsync(string queueName);
    string WaitForNotifyOnAny(params string[] channelNames);
}

基本上MessageQueueClient 也是MessageProducer,但除了从队列中发布获取消息外,还包含其他细粒度方法以及发布和订阅任何MQ主题。

消息客户端和生产者上的类型Publish<T> API具有相同的行为。