private async void ClientListener(string clientKey, CancellationToken token) { var spotify = new SpotifyLocalAPI(); var redisClient = new RedisClient(clientKey); if (!TryConnect(spotify)) { return; } while (true) { if (token.IsCancellationRequested) { redisClient.Delete($"Connected:{CurrentInstance}"); return; } var status = spotify.GetStatus(); var track = redisClient.Get<string>("TrackChange"); if (status.Track.TrackResource.Uri != track) { spotify.PlayURL(track); } var state = redisClient.GetBoolean("PlayStateChange"); if (status.Playing != state) { if (state != null && state == true) { spotify.Play(); } else if (state != null) { spotify.Pause(); } } UpdateUsers(redisClient); await Task.Delay(WaitMillisecondsDelay); } }