private void Subscribe(RtTagMqtt tag)
 {
     if (IsConnected)
     {
         mqttClient.Client.Subscribe(new[] { tag.Topic },
                                     new[] { (byte)tag.Options.qosLevels });
     }
 }
        public override IRtTag AddTag(string tagName, string topic, IRtTagOptions options)
        {
            var tag = GetTag(tagName);

            if (tag != null)
            {
                return(tag);
            }

            RtTagMqtt t = new RtTagMqtt(this, tagName, $"{prefix}{topic}", (options as RtTagMqttOptions));

            lock (rtTags)
            {
                rtTags.Add(t);
            }
            Subscribe(t);
            logger?.LogInformation("AddTag TagName:{0} prefix:{1}", t.TagName, prefix);
            return(t);
        }