Beispiel #1
0
        public async Task SendMessageAsync(PublishMessage message, IBus bus)
        {
            //一对一推送
            var       msg = new Message <object>(message.SendMessage);
            IExchange ex  = null;

            //判断推送模式
            if (message.SendEnum == SendEnum.推送模式)
            {
                ex = bus.Advanced.ExchangeDeclare(message.ExchangeName, ExchangeType.Direct);
            }
            //广播订阅模式
            if (message.SendEnum == SendEnum.订阅模式)
            {
                ex = bus.Advanced.ExchangeDeclare(message.ExchangeName, ExchangeType.Fanout);
            }
            //主题路由模式
            if (message.SendEnum == SendEnum.主题路由模式)
            {
                ex = bus.Advanced.ExchangeDeclare(message.ExchangeName, ExchangeType.Topic);
            }
            await bus.Advanced.PublishAsync(ex, message.RouteName, false, msg)
            .ContinueWith(task =>
            {
                if (!task.IsCompleted && task.IsFaulted)//消息投递失败
                {
                    //记录投递失败的消息信息
                }
            });
        }
Beispiel #2
0
 /// <summary>
 /// 消息异步投递
 /// </summary>
 /// <param name="listMsg"></param>
 public static async Task PublishMessageAsync(PublishMessage message)
 {
     try
     {
         if (bus == null)
         {
             CreateEventBus();
         }
         await new SendMange().SendMessageAsync(message, bus);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #3
0
        /// <summary>
        ///  消息同步投递
        /// </summary>
        /// <param name="listMsg"></param>
        /// <returns></returns>
        public static bool PublishMessage(PublishMessage message)
        {
            bool b = true;

            try
            {
                if (bus == null)
                {
                    CreateEventBus();
                }
                new SendMange().SendMessage(message, bus);
                b = true;
            }
            catch (Exception ex)
            {
                b = false;
            }
            return(b);
        }
Beispiel #4
0
        public void SendMessage(PublishMessage message, IBus bus)
        {
            //一对一推送
            var       msg = new Message <object>(message.SendMessage);
            IExchange ex  = null;

            //判断推送模式
            if (message.SendEnum == SendEnum.推送模式)
            {
                ex = bus.Advanced.ExchangeDeclare(message.ExchangeName, ExchangeType.Direct);
            }
            //广播订阅模式
            if (message.SendEnum == SendEnum.订阅模式)
            {
                ex = bus.Advanced.ExchangeDeclare(message.ExchangeName, ExchangeType.Fanout);
            }
            //主题路由模式
            if (message.SendEnum == SendEnum.主题路由模式)
            {
                ex = bus.Advanced.ExchangeDeclare(message.ExchangeName, ExchangeType.Topic);
            }
            bus.Advanced.Publish(ex, message.RouteName, false, msg);
        }