public IMessageQueue GetQueue(string name) { if (string.IsNullOrEmpty(name)) { return(null); } if (_queues.TryGetValue(name, out var queue) && queue != null) { return(queue); } lock (_queues) { if (_queues.TryGetValue(name, out queue) && queue != null) { return(queue); } var options = MessageUtility.GetOptions(); if (options != null && options.Queues.TryGet(name, out var option)) { _queues.Add(option.Name, queue = new MessageQueue(option.Name)); } return(queue); } }
public static ICertificate GetCertificate(string name) { var options = MessageUtility.GetOptions(); var certificate = string.Empty; if (options.Topics.TryGet(name, out var option)) { certificate = option.Certificate; } if (string.IsNullOrWhiteSpace(certificate)) { certificate = options.Topics.Certificate; } if (string.IsNullOrWhiteSpace(certificate)) { return(Aliyun.Options.GeneralOptions.Instance.Certificates.Default); } return(Aliyun.Options.GeneralOptions.Instance.Certificates.Get(certificate)); }
public static string GetRequestUrl(string topicName, params string[] parts) { var options = MessageUtility.GetOptions(); var region = options.Topics.Region ?? Aliyun.Options.GeneralOptions.Instance.Name; if (options.Topics.TryGet(topicName, out var option) && option.Region.HasValue) { region = option.Region.Value; } var center = ServiceCenter.GetInstance(region, Aliyun.Options.GeneralOptions.Instance.IsIntranet); var path = parts == null ? string.Empty : string.Join("/", parts); if (string.IsNullOrEmpty(path)) { return(string.Format("http://{0}.{1}/topics/{2}", options.Name, center.Path, topicName)); } else { return(string.Format("http://{0}.{1}/topics/{2}/{3}", options.Name, center.Path, topicName, path)); } }