/// <summary>
 /// 广播/发布消息 ExchangeType = Fanout,忽略 RoutingKey 路由规则
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="messager"></param>
 /// <param name="exchange"></param>
 /// <param name="body"></param>
 /// <param name="properties"></param>
 public static void Fanout <T>(this IRabbitMessager messager, string exchange, [NotNull] T body, IBasicProperties properties = null) where T : class
 {
     byte[] bytes = messager.Serializer.Serialize(body);
     messager.Publish(exchange, ExchangeType.Fanout, string.Empty, bytes, properties);
 }
Exemplo n.º 2
0
 /// <summary>
 /// 订阅/消费消息
 /// </summary>
 /// <typeparam name="T">泛型 T</typeparam>
 /// <param name="messager"></param>
 /// <param name="queueName"></param>
 /// <param name="func"></param>
 public static void Subscribe <T>(this IRabbitMessager messager, string queueName, Action <T> func) where T : class
 => messager.Subscribe(queueName, bytes => func(messager.Serializer.Deserialize <T>(bytes.ToArray())));
 /// <summary>
 /// 广播/发布消息 ExchangeType = Fanout,忽略 RoutingKey 路由规则
 /// </summary>
 /// <param name="messager"></param>
 /// <param name="exchange"></param>
 /// <param name="body"></param>
 /// <param name="properties"></param>
 public static void Fanout(this IRabbitMessager messager, string exchange, string body, IBasicProperties properties = null)
 => messager.Publish(exchange, ExchangeType.Fanout, string.Empty, Encoding.UTF8.GetBytes(body), properties);
Exemplo n.º 4
0
 /// <summary>
 /// 订阅/消费消息
 /// </summary>
 /// <param name="messager"></param>
 /// <param name="queueName"></param>
 /// <param name="func"></param>
 public static void Subscribe(this IRabbitMessager messager, string queueName, Action <string> func)
 => messager.Subscribe(queueName, bytes => func(Encoding.UTF8.GetString(bytes.ToArray())));
 /// <summary>
 /// 发布消息 - 采用自定义名称交换机 ExchangeType = Direct
 /// </summary>
 /// <typeparam name="T">泛型 T</typeparam>
 /// <param name="messager"></param>
 /// <param name="exchange"></param>
 /// <param name="routingKey"></param>
 /// <param name="body"></param>
 /// <param name="properties"></param>
 public static void Publish <T>(this IRabbitMessager messager, string exchange, string routingKey, [NotNull] T body, IBasicProperties properties = null) where T : class
 {
     byte[] bytes = messager.Serializer.Serialize(body);
     messager.Publish(exchange, ExchangeType.Direct, routingKey, bytes, properties);
 }
 /// <summary>
 /// 发布消息 - 采用默认交换机 ExchangeType = Direct
 /// </summary>
 /// <typeparam name="T">泛型 T</typeparam>
 /// <param name="messager"></param>
 /// <param name="routingKey"></param>
 /// <param name="body"></param>
 /// <param name="properties"></param>
 public static void Publish <T>(this IRabbitMessager messager, string routingKey, [NotNull] T body, IBasicProperties properties = null) where T : class
 => Publish(messager, string.Empty, routingKey, body, properties);
 /// <summary>
 /// 发布消息 - 采用自定义名称交换机 ExchangeType = Direct
 /// </summary>
 /// <param name="messager"></param>
 /// <param name="exchange"></param>
 /// <param name="routingKey"></param>
 /// <param name="body"></param>
 /// <param name="properties"></param>
 public static void Publish(this IRabbitMessager messager, string exchange, string routingKey, string body, IBasicProperties properties = null)
 => messager.Publish(exchange, ExchangeType.Direct, routingKey, Encoding.UTF8.GetBytes(body), properties);
 /// <summary>
 /// 发布消息 - 采用默认交换机 ExchangeType = Direct
 /// </summary>
 /// <param name="messager"></param>
 /// <param name="routingKey"></param>
 /// <param name="body"></param>
 /// <param name="properties"></param>
 public static void Publish(this IRabbitMessager messager, string routingKey, string body, IBasicProperties properties = null)
 => Publish(messager, string.Empty, routingKey, body, properties);