private MessageBroker GetFixedBroker(MessageFixed fixedType) { MessageBroker broker = null; switch (fixedType) { case MessageFixed.FIXED_ASSERT: broker = PoolProvider.ASSERT; break; case MessageFixed.FIXED_GLOBAL: broker = PoolProvider.GLOBAL; break; case MessageFixed.FIXED_ACTIVITY: broker = PoolProvider.ACTIVITY; break; case MessageFixed.FIXED_PAYPAL: broker = PoolProvider.PAYPAL; break; case MessageFixed.FIXED_STORE: broker = PoolProvider.STORE; break; } return(broker); }
public void Public <T> (MessageFixed fixedType, T value, bool sync = true) where T : IMessage, new() { var broker = GetFixedBroker(fixedType); if (sync == true) { broker.Publish(value); } else { Task.Run(() => broker.Publish(value)); } }
// 默认订阅的消息组,全局事件 // 单一订阅 public IObservable <T> Receive <T> (MessageFixed fixedType, T seek = null) where T : IMessage, new() { MessageBroker broker = GetFixedBroker(fixedType); var value = new T(); if (seek != null) { var vaild = seek.SEEK; if (vaild == true) { value = seek; seek.SEEK = false; } else { throw new BnyxMessageException("Fatal:无效的种子数据或已经存在种子数据"); } } return(broker.Receive <T>(value)); }