forked from j62/ctbrec
1
0
Fork 0

Don't kill the ws in the keep-alive thread, if it is establishing a

connection
This commit is contained in:
0xboobface 2020-01-11 13:20:49 +01:00
parent f5ef7c7cc1
commit 3cf6038da0
1 changed files with 29 additions and 21 deletions

View File

@ -521,8 +521,9 @@ public class MyFreeCamsClient {
private void startKeepAlive(WebSocket ws) {
Thread keepAlive = new Thread(() -> {
while (running) {
LOG.trace("--> NULL to keep the connection alive");
try {
if (!connecting) {
LOG.trace("--> NULL to keep the connection alive");
ws.send("0 0 0 0 0 -\n");
long millisSinceLastMessage = System.currentTimeMillis() - heartBeat;
@ -531,6 +532,10 @@ public class MyFreeCamsClient {
ws.close(1000, "");
MyFreeCamsClient.this.ws = null;
}
} else {
// we are establishing a new connection at the moment, not need to
// do anything
}
Thread.sleep(TimeUnit.SECONDS.toMillis(15));
} catch (InterruptedException e) {
@ -561,23 +566,10 @@ public class MyFreeCamsClient {
}
public String getStreamUrl(SessionState state) {
Integer camserv = Optional.ofNullable(state.getU()).map(User::getCamserv).orElse(-1);
String camservString = camserv.toString();
if (serverConfig.isOnWzObsVideoServer(state)) {
camservString = serverConfig.wzobsServers.get(camserv.toString());
} else if (serverConfig.isOnObsServer(state)) {
camservString = serverConfig.ngVideoServers.get(camserv.toString());
} else if (serverConfig.isOnHtml5VideoServer(state)) {
camservString = serverConfig.h5Servers.get(camserv.toString());
} else if (camserv > 500) {
camserv -= 500;
camservString = camserv.toString();
}
int userChannel = 100000000 + state.getUid();
String phase = state.getU().getPhase() != null ? state.getU().getPhase() : "z";
String phasePrefix = phase.equals("z") ? "" : '_' + phase;
String server = "video" + camservString.replaceAll("^\\D+", "");
String server = "video" + getCamServ(state).replaceAll("^\\D+", "");
boolean useHls = serverConfig.isOnObsServer(state);
String streamUrl;
boolean dontUseDash = !Config.getInstance().getSettings().mfcUseDash;
@ -601,6 +593,22 @@ public class MyFreeCamsClient {
return streamUrl;
}
private String getCamServ(SessionState state) {
Integer camserv = Optional.ofNullable(state.getU()).map(User::getCamserv).orElse(-1);
String camservString = camserv.toString();
if (serverConfig.isOnWzObsVideoServer(state)) {
camservString = serverConfig.wzobsServers.get(camserv.toString());
} else if (serverConfig.isOnObsServer(state)) {
camservString = serverConfig.ngVideoServers.get(camserv.toString());
} else if (serverConfig.isOnHtml5VideoServer(state)) {
camservString = serverConfig.h5Servers.get(camserv.toString());
} else if (camserv > 500) {
camserv -= 500;
camservString = camserv.toString();
}
return camservString;
}
public MyFreeCamsModel getModel(int uid) {
return models.getIfPresent(uid);
}