Convert to and use LiveClientStopType enum for disconnecting websocket from magic numbers!

This commit is contained in:
kohlerpop1
2025-09-16 21:19:44 -04:00
parent 19ed45e6de
commit 03180d6a1c
7 changed files with 65 additions and 22 deletions

View File

@@ -35,7 +35,7 @@ import io.github.jwdeveloper.tiktok.listener.ListenersManager;
import io.github.jwdeveloper.tiktok.live.*;
import io.github.jwdeveloper.tiktok.messages.webcast.ProtoMessageFetchResult;
import io.github.jwdeveloper.tiktok.models.ConnectionState;
import io.github.jwdeveloper.tiktok.websocket.LiveSocketClient;
import io.github.jwdeveloper.tiktok.websocket.*;
import lombok.Getter;
import java.util.Base64;
@@ -166,7 +166,7 @@ public class TikTokLiveClient implements LiveClient
tikTokEventHandler.publish(this, new TikTokRoomInfoEvent(roomInfo));
}
public void disconnect(int type) {
public void disconnect(LiveClientStopType type) {
if (webSocketClient.isConnected())
webSocketClient.stop(type);
if (!roomInfo.hasConnectionState(ConnectionState.DISCONNECTED))

View File

@@ -57,7 +57,7 @@ public class TikTokWebSocketClient implements LiveSocketClient {
@Override
public void start(LiveConnectionData.Response connectionData, LiveClient liveClient) {
if (isConnected())
stop(0);
stop(LiveClientStopType.NORMAL);
messageHandler.handle(liveClient, connectionData.getWebcastResponse());
@@ -129,17 +129,17 @@ public class TikTokWebSocketClient implements LiveSocketClient {
}
}
public void stop(int type) {
public void stop(LiveClientStopType type) {
if (isConnected()) {
switch (type) {
case 1 -> {
case CLOSE_BLOCKING -> {
try {
webSocketClient.closeBlocking();
} catch (InterruptedException e) {
throw new TikTokLiveException("Failed to stop the websocket");
}
}
case 2 -> webSocketClient.closeConnection(CloseFrame.NORMAL, "");
case DISCONNECT -> webSocketClient.closeConnection(CloseFrame.NORMAL, "");
default -> webSocketClient.close();
}
heartbeatTask.stop(webSocketClient);

View File

@@ -44,7 +44,7 @@ public class TikTokWebSocketOfflineClient implements LiveSocketClient {
}
@Override
public void stop(int type) {
public void stop(LiveClientStopType type) {
if (liveClient != null)
handler.publish(liveClient, new TikTokDisconnectedEvent("Stopping"));
}

View File

@@ -23,14 +23,14 @@
package io.github.jwdeveloper.tiktok.websocket.euler;
import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData;
import io.github.jwdeveloper.tiktok.data.settings.*;
import io.github.jwdeveloper.tiktok.exceptions.*;
import io.github.jwdeveloper.tiktok.data.settings.LiveClientSettings;
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
import io.github.jwdeveloper.tiktok.live.*;
import io.github.jwdeveloper.tiktok.websocket.*;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.framing.CloseFrame;
import java.net.*;
import java.net.URI;
import java.util.HashMap;
public class TikTokWebSocketEulerClient implements LiveSocketClient {
@@ -53,7 +53,7 @@ public class TikTokWebSocketEulerClient implements LiveSocketClient {
@Override
public void start(LiveConnectionData.Response connectionData, LiveClient liveClient) {
if (isConnected())
stop(0);
stop(LiveClientStopType.NORMAL);
webSocketClient = new TikTokWebSocketEulerListener(
URI.create("wss://ws.eulerstream.com?uniqueId=%s&apiKey=%s&features.rawMessages=true".formatted(liveClient.getRoomInfo().getHostName(), clientSettings.getApiKey())),
@@ -74,17 +74,17 @@ public class TikTokWebSocketEulerClient implements LiveSocketClient {
}
}
public void stop(int type) {
public void stop(LiveClientStopType type) {
if (isConnected()) {
switch (type) {
case 1 -> {
case CLOSE_BLOCKING -> {
try {
webSocketClient.closeBlocking();
} catch (InterruptedException e) {
throw new TikTokLiveException("Failed to stop the websocket");
}
}
case 2 -> webSocketClient.closeConnection(CloseFrame.NORMAL, "");
case DISCONNECT -> webSocketClient.closeConnection(CloseFrame.NORMAL, "");
default -> webSocketClient.close();
}
}