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) //消息投递失败 { //记录投递失败的消息信息 } }); }
/// <summary> /// 消息异步投递 /// </summary> /// <param name="pushMsg"></param> public static async Task PushMessageAsync(PushMsg pushMsg) { try { if (bus == null) { CreateEventBus(); } await new SendMessageMange().SendMsgAsync(pushMsg, bus); } catch (Exception ex) { throw ex; } }
/// <summary> /// 消息同步投递 /// </summary> /// <param name="pushMsg"></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) { b = false; } return(b); }
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); }