private void doOnDisconnected(CometClientTransportWrapper transport) { if (refreshState != null) { if (transport == primaryTransport) { if (refreshState != RefreshState.CONNECTING && refreshState != RefreshState.PRIMARY_RECONNECT) { throw new IllegalStateException("Unexpected refreshState"); } if (refreshState == RefreshState.PRIMARY_RECONNECT) { scheduleConnect(transport); } else { refreshState = RefreshState.PRIMARY_DISCONNECTED; logger.warning("primary disconnected before refresh transport was connected"); } } else { // the refresh transport has disconnected failedRefresh(); } } else { listener.onDisconnected(); scheduleConnect(transport); } }
private void doOnDisconnected(CometClientTransportWrapper transport) { if (refreshState != null) { if (transport == primaryTransport) { if (refreshState != RefreshState.CONNECTING && refreshState != RefreshState.PRIMARY_RECONNECT) { throw new IllegalStateException("Unexpected refreshState"); } if (refreshState == RefreshState.PRIMARY_RECONNECT) { scheduleConnect(transport); } else { refreshState = RefreshState.PRIMARY_DISCONNECTED; logger.warning("primary disconnected before refresh transport was connected"); } } else { // the refresh transport has disconnected failedRefresh(); } } else { listener.onDisconnected(); scheduleConnect(transport); } }
private void failedRefresh() { refreshState = null; logger.severe("Failed refesh"); // dispatch remaining messages; if (refreshQueue != null) { for (Object object : refreshQueue) { if (object == REFRESH || object == DISCONNECT) { } else { doOnMessage((List<?>) object, primaryTransport); } } refreshQueue.clear(); } listener.onError(new RuntimeException("Failed to refresh connection. Will try to establish a new connection"), false); scheduleConnect(primaryTransport); }
private void failedRefresh() { refreshState = null; logger.severe("Failed refesh"); // dispatch remaining messages; if (refreshQueue != null) { for (Object object : refreshQueue) { if (object == REFRESH || object == DISCONNECT) { } else { doOnMessage((List<?>) object, primaryTransport); } } refreshQueue.clear(); } listener.onError(new RuntimeException("Failed to refresh connection. Will try to establish a new connection"), false); scheduleConnect(primaryTransport); }