コード例 #1
0
        public async Task SendMsgAsync(PushMsg pushMsg, IBus bus)
        {
            //一对一推送
            var       message = new Message <object>(pushMsg.sendMsg);
            IExchange ex      = null;

            //判断推送模式
            if (pushMsg.sendEnum == SendEnum.推送模式)
            {
                ex = bus.Advanced.ExchangeDeclare(pushMsg.exchangeName, ExchangeType.Direct);
            }
            if (pushMsg.sendEnum == SendEnum.订阅模式)
            {
                //广播订阅模式
                ex = bus.Advanced.ExchangeDeclare(pushMsg.exchangeName, ExchangeType.Fanout);
            }
            if (pushMsg.sendEnum == SendEnum.主题路由模式)
            {
                //主题路由模式
                ex = bus.Advanced.ExchangeDeclare(pushMsg.exchangeName, ExchangeType.Topic);
            }
            await bus.Advanced.PublishAsync(ex, pushMsg.routeName, false, message)
            .ContinueWith(task =>
            {
                if (!task.IsCompleted && task.IsFaulted)//消息投递失败
                {
                    //记录投递失败的消息信息
                }
            });
        }
コード例 #2
0
 /// <summary>
 /// 消息异步投递
 /// </summary>
 /// <param name="listMsg"></param>
 public static async Task PushMessageAsync(PushMsg pushMsg)
 {
     try
     {
         if (bus == null)
         {
             CreateEventBus();
         }
         await new SendMessageMange().SendMsgAsync(pushMsg, bus);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #3
0
        /// <summary>
        ///  消息同步投递
        /// </summary>
        /// <param name="listMsg"></param>
        /// <returns></returns>
        public static bool PushMessage(PushMsg pushMsg)
        {
            bool b = true;

            try
            {
                if (bus == null)
                {
                    CreateEventBus();
                }
                new SendMessageMange().SendMsg(pushMsg, bus);
                b = true;
            }
            catch (Exception ex)
            {
                b = false;
            }
            return(b);
        }
コード例 #4
0
        public void SendMsg(PushMsg pushMsg, IBus bus)
        {
            //一对一推送

            var       message = new Message <object>(pushMsg.sendMsg);
            IExchange ex      = null;

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