public async Task <MqttClientSubscribeResult> SubscribeAsync(SubscriptionInfo subscriptionInfo, CancellationToken cancellationToken = default) { string topic = subscriptionInfo?.Topic; _logger.LogInformation($"Subscribing to topic {topic} with {subscriptionInfo?.ConsumerType?.Name}"); var containsKey = _subsManager.HasSubscriptionsForEvent(topic); if (!containsKey) { if (await _mqttPersisterConnection.TryRegisterMessageHandlerAsync(MessageReceivedAsync, cancellationToken)) { _subsManager.TryAddSubscription(subscriptionInfo); return(await OnSubscribesAsync(topic, cancellationToken)); } } return(null); }