Пример #1
0
        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);
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        // 默认订阅的消息组,全局事件
        // 单一订阅
        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));
        }