Esempio n. 1
0
 public DefaultMqttPersisterConnection(IMqttClientOptions mqttClientOptions, IEventBusLogger <DefaultMqttPersisterConnection> logger, BusOptions busOptions)
 {
     _asyncLock          = new AsyncLock();
     _options            = mqttClientOptions;
     _logger             = logger;
     _retryCount         = busOptions?.RetryCount ?? 5;
     _client             = CreareMqttClient();
     _disconnectionCache = new Dictionary <string, MqttClientConnectionEventArgs>();
 }
Esempio n. 2
0
        public EventProvider(IServiceProvider serviceProvider, ITopicPattenBuilder topicPattenBuilder, HashSet <EventOptions> eventOptions, IEventBusLogger <EventProvider> logger)
        {
            _topicPattenBuilder = topicPattenBuilder;
            _eventCreaters      = eventOptions.ToDictionary(p => p.EventName, p => EventCreater.New(serviceProvider, p));
            _eventOptions       = eventOptions.ToDictionary(p => p.EventName);
            _eventNames         = eventOptions.ToDictionary(p => p.EventType, p => p.EventName);

            _topicCreaters = eventOptions
                             .Where(p => p.Topic.PatternType != null && _topicPattenBuilder.IsPattern(p.Topic.Pattern))
                             .ToDictionary(p => p.EventName, p => topicPattenBuilder.CreateTopicCreater(p.Topic.PatternType, p.Topic.Pattern).Compile());

            _topics = eventOptions
                      .Where(p => !_topicPattenBuilder.IsStaticTopic(p.Topic.Pattern))
                      .ToDictionary(p => p.EventName, p => p.Topic.Pattern);

            _logger = logger;
        }
Esempio n. 3
0
 public MqttEventBus(
     IMqttPersisterConnection mqttPersisterConnection,
     IEventProvider eventProvider,
     IConsumeMethodInvoker consumeMethodInvoker,
     IEventBusLogger <MqttEventBus> logger,
     IServiceScopeFactory scopeFactory,
     ISubscriptionsManager subsManager,
     BusOptions busOptions)
 {
     _mqttPersisterConnection = mqttPersisterConnection ?? throw new ArgumentNullException(nameof(mqttPersisterConnection));
     _mqttPersisterConnection.ClientConnectionChanged += OnConnectionLostAsync;
     _eventProvider        = eventProvider;
     _consumeMethodInvoker = consumeMethodInvoker;
     _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
     _subsManager  = subsManager ?? throw new ArgumentNullException(nameof(ISubscriptionsManager));
     _retryCount   = busOptions?.RetryCount ?? 5;
     _scopeFactory = scopeFactory;
     _asyncLocker  = new SemaphoreSlim(busOptions.MaxConcurrentCalls, busOptions.MaxConcurrentCalls);
 }