diff --git a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs index 813beb38..6fc80adc 100644 --- a/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs +++ b/src/PepperDash.Essentials.MobileControl.Messengers/Messengers/MessengerBase.cs @@ -31,7 +31,7 @@ namespace PepperDash.Essentials.AppServer.Messengers /// /// Unsoliciited feedback from a device in a messenger will ONLY be sent to devices in this subscription list. When a client disconnects, it's ID will be removed from the collection. /// - protected HashSet SubscriberIds = new HashSet(); + private readonly HashSet subscriberIds = new HashSet(); /// /// Lock object for thread-safe access to SubscriberIds @@ -200,13 +200,11 @@ namespace PepperDash.Essentials.AppServer.Messengers lock (_subscriberLock) { - if (SubscriberIds.Contains(clientId)) + if (!subscriberIds.Add(clientId)) { this.LogVerbose("Client {clientId} already subscribed", clientId); return; } - - SubscriberIds.Add(clientId); } this.LogDebug("Client {clientId} subscribed", clientId); @@ -227,10 +225,10 @@ namespace PepperDash.Essentials.AppServer.Messengers bool wasSubscribed; lock (_subscriberLock) { - wasSubscribed = SubscriberIds.Contains(clientId); + wasSubscribed = subscriberIds.Contains(clientId); if (wasSubscribed) { - SubscriberIds.Remove(clientId); + subscriberIds.Remove(clientId); } } @@ -332,7 +330,7 @@ namespace PepperDash.Essentials.AppServer.Messengers List subscriberSnapshot; lock (_subscriberLock) { - subscriberSnapshot = new List(SubscriberIds); + subscriberSnapshot = new List(subscriberIds); } foreach (var client in subscriberSnapshot)