Skip to content

Commit c160259

Browse files
authored
Merge pull request #94 from jwdeveloper/develop-1.8.5
Develop 1.8.5
2 parents cb20c3d + fb458e7 commit c160259

File tree

4 files changed

+15
-14
lines changed

4 files changed

+15
-14
lines changed

API/src/main/java/io/github/jwdeveloper/tiktok/data/settings/LiveClientSettings.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ public class LiveClientSettings {
8282

8383
/**
8484
* Interval of time in milliseconds between pings to TikTok
85-
* @apiNote Min: 250 (0.25 seconds), Default: 5000 (5 seconds)
85+
* @apiNote Min: 250 (0.25 seconds), Default: 10000 (10 seconds - TikTok Default)
8686
*/
87-
private long pingInterval = 5000;
87+
private long pingInterval = 10000;
8888

8989
/** Throw an exception on 18+ Age Restriction */
9090
private boolean throwOnAgeRestriction;

Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClientBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public LiveClient build() {
138138

139139
//networking
140140
dependance.registerSingleton(HttpClientFactory.class);
141-
dependance.registerSingleton(TikTokWebSocketPingingTask.class);
141+
dependance.registerSingleton(WebSocketHeartbeatTask.class);
142142
if (clientSettings.isOffline()) {
143143
dependance.registerSingleton(LiveSocketClient.class, TikTokWebSocketOfflineClient.class);
144144
dependance.registerSingleton(LiveHttpClient.class, TikTokLiveHttpOfflineClient.class);

Client/src/main/java/io/github/jwdeveloper/tiktok/websocket/TikTokWebSocketClient.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,20 @@ public class TikTokWebSocketClient implements LiveSocketClient {
4040
private final LiveClientSettings clientSettings;
4141
private final LiveMessagesHandler messageHandler;
4242
private final LiveEventsHandler tikTokEventHandler;
43-
private final TikTokWebSocketPingingTask pingingTask;
43+
private final WebSocketHeartbeatTask heartbeatTask;
4444
private WebSocketClient webSocketClient;
4545
private boolean isConnected;
4646

4747
public TikTokWebSocketClient(
4848
LiveClientSettings clientSettings,
4949
LiveMessagesHandler messageHandler,
5050
LiveEventsHandler tikTokEventHandler,
51-
TikTokWebSocketPingingTask pingingTask)
51+
WebSocketHeartbeatTask heartbeatTask)
5252
{
5353
this.clientSettings = clientSettings;
5454
this.messageHandler = messageHandler;
5555
this.tikTokEventHandler = tikTokEventHandler;
56-
this.pingingTask = pingingTask;
56+
this.heartbeatTask = heartbeatTask;
5757
isConnected = false;
5858
}
5959

@@ -84,7 +84,7 @@ public void start(LiveConnectionData.Response connectionData, LiveClient liveCli
8484
private void connectDefault() {
8585
try {
8686
webSocketClient.connect();
87-
pingingTask.run(webSocketClient, clientSettings.getPingInterval());
87+
heartbeatTask.run(webSocketClient, clientSettings.getPingInterval());
8888
isConnected = true;
8989
} catch (Exception e) {
9090
isConnected = false;
@@ -120,7 +120,7 @@ public X509Certificate[] getAcceptedIssuers() {
120120
proxySettings.remove();
121121
continue;
122122
}
123-
pingingTask.run(webSocketClient, clientSettings.getPingInterval());
123+
heartbeatTask.run(webSocketClient, clientSettings.getPingInterval());
124124
isConnected = true;
125125
break;
126126
}
@@ -141,7 +141,7 @@ public boolean tryProxyConnection(ProxyClientSettings proxySettings, ProxyData p
141141
public void stop() {
142142
if (isConnected && webSocketClient != null && webSocketClient.isOpen()) {
143143
webSocketClient.closeConnection(0, "");
144-
pingingTask.stop();
144+
heartbeatTask.stop();
145145
}
146146
webSocketClient = null;
147147
isConnected = false;
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,19 @@
2222
*/
2323
package io.github.jwdeveloper.tiktok.websocket;
2424

25-
import io.github.jwdeveloper.tiktok.live.LiveEventsHandler;
2625
import org.java_websocket.WebSocket;
2726

28-
public class TikTokWebSocketPingingTask {
27+
public class WebSocketHeartbeatTask
28+
{
2929
private Thread thread;
3030
private boolean isRunning = false;
3131
private final int MAX_TIMEOUT = 250;
3232
private final int SLEEP_TIME = 500;
33+
private final byte[] heartbeatBytes = {58, 2, 104, 98}; // Byte Array of "3A026862" which is TikTok's custom heartbeat value
3334

3435
public void run(WebSocket webSocket, long pingTaskTime) {
3536
stop();
36-
thread = new Thread(() -> pingTask(webSocket, pingTaskTime), "pinging-task");
37+
thread = new Thread(() -> heartbeatTask(webSocket, pingTaskTime), "heartbeat-task");
3738
isRunning = true;
3839
thread.start();
3940
}
@@ -44,11 +45,11 @@ public void stop() {
4445
isRunning = false;
4546
}
4647

47-
private void pingTask(WebSocket webSocket, long pingTaskTime) {
48+
private void heartbeatTask(WebSocket webSocket, long pingTaskTime) {
4849
while (isRunning) {
4950
try {
5051
if (webSocket.isOpen()) {
51-
webSocket.sendPing();
52+
webSocket.send(heartbeatBytes);
5253
Thread.sleep(pingTaskTime + (int) (Math.random() * MAX_TIMEOUT));
5354
} else
5455
Thread.sleep(SLEEP_TIME);

0 commit comments

Comments
 (0)