private void Stop()
 {
     Task.Run(() =>
     {
         lock (connectionLock)
         {
             log.Write(LogVerbosity.Info, "No more subscriptions, stopping the socket");
             connection.Stop(TimeSpan.FromSeconds(1));
         }
     });
 }
        private void CheckStop()
        {
            bool shouldStop;

            lock (registrationLock)
                shouldStop = !registrations.Any();

            if (shouldStop)
            {
                Task.Run(() =>
                {
                    lock (connectionLock)
                    {
                        log.Write(LogVerbosity.Info, "No more subscriptions, stopping the socket");
                        connection.Stop(TimeSpan.FromSeconds(1));
                    }
                });
            }
        }