Further improvements to MCU reconnections

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2019-05-29 11:53:09 +02:00
parent 9cf7891fbc
commit e510a35ae4

View File

@ -102,26 +102,28 @@ public class MagicWebSocketInstance extends WebSocketListener {
@Override
public void onOpen(WebSocket webSocket, Response response) {
internalWebSocket = webSocket;
sendHello();
}
private void closeWebSocket(WebSocket webSocket) {
webSocket.close(1000, null);
webSocket.cancel();
messagesQueue = new ArrayList<>();
currentRoomToken = "";
}
private void restartWebSocket() {
reconnecting = true;
if (internalWebSocket != null) {
internalWebSocket.close(1000, null);
internalWebSocket.cancel();
messagesQueue = new ArrayList<>();
currentRoomToken = "";
}
Request request = new Request.Builder().url(connectionUrl).build();
internalWebSocket = okHttpClient.newWebSocket(request, this);
okHttpClient.newWebSocket(request, this);
restartCount++;
}
@Override
public void onMessage(WebSocket webSocket, String text) {
if (webSocket == internalWebSocket) {
Log.d(TAG, "Receiving : " + text);
try {
BaseWebSocketMessage baseWebSocketMessage = LoganSquare.parse(text, BaseWebSocketMessage.class);
@ -233,6 +235,7 @@ public class MagicWebSocketInstance extends WebSocketListener {
Log.e(TAG, "Failed to WebSocket message");
}
}
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
@ -247,6 +250,7 @@ public class MagicWebSocketInstance extends WebSocketListener {
@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
Log.d(TAG, "Error : " + t.getMessage());
closeWebSocket(webSocket);
restartWebSocket();
}