@Override public void run() { if (!connected) { LogUtil.log(this + ": initial timeout expired"); notifyDisconnected(); } }
@Override public void start() { stopped = false; if (connected) { LogUtil.log("did not start SSE handler: already started."); return; } sseChannel = attemptSSEChannel(clientMessageBus, sseEntryPoint); }
private void notifyConnected() { pingTimeout.cancel(); retries = 0; if (!connected) { connected = true; connectedTime = System.currentTimeMillis(); LogUtil.log(this + ": SSE channel is active."); } if (clientMessageBus.getState() == BusState.CONNECTION_INTERRUPTED) { clientMessageBus.setState(BusState.CONNECTED); } }
private void notifyDisconnected() { connected = false; pingTimeout.cancel(); LogUtil.log(this + " channel disconnected."); connectedTime = -1; clientMessageBus.setState(BusState.CONNECTION_INTERRUPTED); disconnect(sseChannel); if (!stopped) { retries++; start(); } }
@Override public void configure(final Message capabilitiesMessage) { configured = true; if (!isSSESupported()) { hosed = true; unsupportedReason = UNSUPPORTED_MESSAGE_NO_SERVER_SUPPORT; LogUtil.log("this browser does not support SSE"); return; } this.sseEntryPoint = URL.encode( clientMessageBus.getApplicationLocation(clientMessageBus.getInServiceEntryPoint())) + "?z=0000&sse=1&clientId=" + URL.encodePathSegment(clientMessageBus.getClientId()); }