Here are the IMessageProducer and IMessageQueueClient APIs:
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); }
Basically, MessageQueueClient is also a MessageProducer , but it contains other fine-grained methods in addition to publishing to Receive Messages from the Queue, as well as publishing and subscribing to any MQ topics.
The dialed Publish<T> API for both the message client and the producer has the same behavior.
mythz source share