basicConsume:
由服務端主動PUSH消息過來,方法接收到消息后進行處理
string BasicConsume(string queue, bool autoAck, string consumerTag, bool noLocal, bool exclusive, IDictionary<string, object> arguments, IBasicConsumer consumer);
public static string BasicConsume(this IModel model, IBasicConsumer consumer, string queue, bool autoAck = false, string consumerTag = "", bool noLocal = false, bool exclusive = false, IDictionary<string, object> arguments = null);
public static string BasicConsume(this IModel model, string queue, bool autoAck, IBasicConsumer consumer);
public static string BasicConsume(this IModel model, string queue, bool autoAck, string consumerTag, IBasicConsumer consumer);
public static string BasicConsume(this IModel model, string queue, bool autoAck, string consumerTag, IDictionary<string, object> arguments, IBasicConsumer consumer);
basicConsume方法參數說明:
queue:隊列名
autoAck:是否自動回復Ack
consumerTag:消費者標識
arguments:其他參數,比如可以設置消費者優先級(x-priority)等參數
noLocal:如果服務器不應將在此通道連接上發布的消息傳遞給此使用者,則為true
exclusive:
IBasicConsumer:
basicGet:
主動拉取隊列中的一條消息
BasicGetResult basicGet(String queue, boolean autoAck)
/**
* 從消息隊列中取出第一條消息;整個方法的執行過程是首先消費隊列,然后檢索第一條消息,然后再取消訂閱
*/
var result = channel.basicGet(QUEUE_NAME, true);
basicCancel
取消消費者訂閱
/**
* 取消消費者對隊列的訂閱關系
* consumerTag:服務器端生成的消費者標識
**/
void basicCancel(String consumerTag)
BasicPublish
發送消息
void BasicPublish(string exchange, string routingKey, bool mandatory, IBasicProperties basicProperties, byte[] body);
void BasicPublish(this IModel model, PublicationAddress addr, IBasicProperties basicProperties, byte[] body);
void BasicPublish(this IModel model, string exchange, string routingKey, IBasicProperties basicProperties, byte[] body);
void BasicPublish(this IModel model, string exchange, string routingKey, bool mandatory = false, IBasicProperties basicProperties = null, byte[] body = null);
BasicPublish方法參數:
- exchange:要將消息發送到的Exchange(交換器)
- routingKey:路由Key
- mandatory:如果為true, 消息不能路由到指定的隊列時,會觸發channel.BasicReturn事件,如果為false,則broker會直接將消息丟棄。(channel.BasicReturn += Channel_BasicReturn;)
- basicProperties:其它的一些屬性
- body:消息內
