Don't kill the ws in the keep-alive thread, if it is establishing a
connection
This commit is contained in:
parent
f5ef7c7cc1
commit
3cf6038da0
|
@ -521,15 +521,20 @@ public class MyFreeCamsClient {
|
||||||
private void startKeepAlive(WebSocket ws) {
|
private void startKeepAlive(WebSocket ws) {
|
||||||
Thread keepAlive = new Thread(() -> {
|
Thread keepAlive = new Thread(() -> {
|
||||||
while (running) {
|
while (running) {
|
||||||
LOG.trace("--> NULL to keep the connection alive");
|
|
||||||
try {
|
try {
|
||||||
ws.send("0 0 0 0 0 -\n");
|
if (!connecting) {
|
||||||
|
LOG.trace("--> NULL to keep the connection alive");
|
||||||
|
ws.send("0 0 0 0 0 -\n");
|
||||||
|
|
||||||
long millisSinceLastMessage = System.currentTimeMillis() - heartBeat;
|
long millisSinceLastMessage = System.currentTimeMillis() - heartBeat;
|
||||||
if (millisSinceLastMessage > TimeUnit.MINUTES.toMillis(2)) {
|
if (millisSinceLastMessage > TimeUnit.MINUTES.toMillis(2)) {
|
||||||
LOG.info("No message since 2 mins. Restarting websocket");
|
LOG.info("No message since 2 mins. Restarting websocket");
|
||||||
ws.close(1000, "");
|
ws.close(1000, "");
|
||||||
MyFreeCamsClient.this.ws = null;
|
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));
|
Thread.sleep(TimeUnit.SECONDS.toMillis(15));
|
||||||
|
@ -561,23 +566,10 @@ public class MyFreeCamsClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStreamUrl(SessionState state) {
|
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();
|
int userChannel = 100000000 + state.getUid();
|
||||||
String phase = state.getU().getPhase() != null ? state.getU().getPhase() : "z";
|
String phase = state.getU().getPhase() != null ? state.getU().getPhase() : "z";
|
||||||
String phasePrefix = phase.equals("z") ? "" : '_' + phase;
|
String phasePrefix = phase.equals("z") ? "" : '_' + phase;
|
||||||
String server = "video" + camservString.replaceAll("^\\D+", "");
|
String server = "video" + getCamServ(state).replaceAll("^\\D+", "");
|
||||||
boolean useHls = serverConfig.isOnObsServer(state);
|
boolean useHls = serverConfig.isOnObsServer(state);
|
||||||
String streamUrl;
|
String streamUrl;
|
||||||
boolean dontUseDash = !Config.getInstance().getSettings().mfcUseDash;
|
boolean dontUseDash = !Config.getInstance().getSettings().mfcUseDash;
|
||||||
|
@ -601,6 +593,22 @@ public class MyFreeCamsClient {
|
||||||
return streamUrl;
|
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) {
|
public MyFreeCamsModel getModel(int uid) {
|
||||||
return models.getIfPresent(uid);
|
return models.getIfPresent(uid);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue