forked from j62/ctbrec
Invalidate cache when a new websocket is opened
When a new connection is established (for example by the watchdog), invalidate the caches. Also don't trigger a connect, if we are already trying to connect.
This commit is contained in:
parent
ea57d4faea
commit
0dbf319575
|
@ -59,6 +59,7 @@ public class MyFreeCamsClient {
|
||||||
private String chatToken;
|
private String chatToken;
|
||||||
private int sessionId;
|
private int sessionId;
|
||||||
private long heartBeat;
|
private long heartBeat;
|
||||||
|
private volatile boolean connecting = false;
|
||||||
|
|
||||||
private EvictingQueue<String> receivedTextHistory = EvictingQueue.create(100);
|
private EvictingQueue<String> receivedTextHistory = EvictingQueue.create(100);
|
||||||
|
|
||||||
|
@ -86,7 +87,7 @@ public class MyFreeCamsClient {
|
||||||
|
|
||||||
Thread watchDog = new Thread(() -> {
|
Thread watchDog = new Thread(() -> {
|
||||||
while(running) {
|
while(running) {
|
||||||
if (ws == null) {
|
if (ws == null && !connecting) {
|
||||||
LOG.info("Websocket is null. Starting a new connection");
|
LOG.info("Websocket is null. Starting a new connection");
|
||||||
Request req = new Request.Builder()
|
Request req = new Request.Builder()
|
||||||
.url(wsUrl)
|
.url(wsUrl)
|
||||||
|
@ -126,11 +127,15 @@ public class MyFreeCamsClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
private WebSocket createWebSocket(Request req) {
|
private WebSocket createWebSocket(Request req) {
|
||||||
|
connecting = true;
|
||||||
WebSocket ws = mfc.getHttpClient().newWebSocket(req, new WebSocketListener() {
|
WebSocket ws = mfc.getHttpClient().newWebSocket(req, new WebSocketListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onOpen(WebSocket webSocket, Response response) {
|
public void onOpen(WebSocket webSocket, Response response) {
|
||||||
super.onOpen(webSocket, response);
|
super.onOpen(webSocket, response);
|
||||||
try {
|
try {
|
||||||
|
connecting = false;
|
||||||
|
sessionStates.invalidateAll();
|
||||||
|
models.invalidateAll();
|
||||||
LOG.trace("open: [{}]", response.body().string());
|
LOG.trace("open: [{}]", response.body().string());
|
||||||
webSocket.send("hello fcserver\n");
|
webSocket.send("hello fcserver\n");
|
||||||
webSocket.send("fcsws_20180422\n");
|
webSocket.send("fcsws_20180422\n");
|
||||||
|
@ -147,6 +152,7 @@ public class MyFreeCamsClient {
|
||||||
@Override
|
@Override
|
||||||
public void onClosed(WebSocket webSocket, int code, String reason) {
|
public void onClosed(WebSocket webSocket, int code, String reason) {
|
||||||
super.onClosed(webSocket, code, reason);
|
super.onClosed(webSocket, code, reason);
|
||||||
|
connecting = false;
|
||||||
LOG.info("MFC websocket closed: {} {}", code, reason);
|
LOG.info("MFC websocket closed: {} {}", code, reason);
|
||||||
MyFreeCamsClient.this.ws = null;
|
MyFreeCamsClient.this.ws = null;
|
||||||
if(!running) {
|
if(!running) {
|
||||||
|
@ -157,6 +163,7 @@ public class MyFreeCamsClient {
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
|
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
|
||||||
super.onFailure(webSocket, t, response);
|
super.onFailure(webSocket, t, response);
|
||||||
|
connecting = false;
|
||||||
if(response != null) {
|
if(response != null) {
|
||||||
int code = response.code();
|
int code = response.code();
|
||||||
String message = response.message();
|
String message = response.message();
|
||||||
|
|
Loading…
Reference in New Issue