Change static schedulers to AsyncHandler to hold for heartbeat and reconnect logic. (#148)

This commit is contained in:
David Kohler
2025-09-24 19:26:44 -04:00
committed by GitHub
parent 85cba9fff2
commit 57f33b2efa
5 changed files with 45 additions and 39 deletions

View File

@@ -23,6 +23,7 @@
package io.github.jwdeveloper.tiktok;
import com.google.protobuf.ByteString;
import io.github.jwdeveloper.tiktok.common.AsyncHandler;
import io.github.jwdeveloper.tiktok.data.events.*;
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
import io.github.jwdeveloper.tiktok.data.events.control.*;
@@ -39,7 +40,7 @@ import io.github.jwdeveloper.tiktok.websocket.*;
import lombok.Getter;
import java.util.Base64;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.*;
import java.util.function.Consumer;
import java.util.logging.Logger;
@@ -89,12 +90,11 @@ public class TikTokLiveClient implements LiveClient
tikTokEventHandler.publish(this, new TikTokDisconnectedEvent("Exception: " + e.getMessage()));
if (e instanceof TikTokLiveOfflineHostException && clientSettings.isRetryOnConnectionFailure()) {
try {
Thread.sleep(clientSettings.getRetryConnectionTimeout().toMillis());
} catch (Exception ignored) {}
logger.info("Reconnecting");
tikTokEventHandler.publish(this, new TikTokReconnectingEvent());
this.connect();
AsyncHandler.getReconnectScheduler().schedule(() -> {
logger.info("Reconnecting");
tikTokEventHandler.publish(this, new TikTokReconnectingEvent());
this.connect();
}, clientSettings.getRetryConnectionTimeout().toMillis(), TimeUnit.MILLISECONDS);
}
throw e;
} catch (Exception e) {