@Override protected void internalStop() { super.internalStop(); cancelReconnectTimerTask(); }
@Override public void run() { connect(); } }
@Override public void run() { connect(); } }
protected void scheduleReconnectTimerTask() { log.info("Channel %s schedule reconnect", getId()); setPinged(false); setAuthenticated(false); ReconnectTimerTask task = new ReconnectTimerTask(); ReconnectTimerTask previousTask = reconnectTimerTask.getAndSet(task); if (previousTask != null) previousTask.cancel(); if (reconnectAttempts < reconnectMaxAttempts) { reconnectAttempts++; schedule(task, reconnectIntervalMillis); } }
@Override public void onError(TransportMessage message, Exception e) { if (!isStarted()) return; super.onError(message, e); // Mark consumers as unsubscribed // Should maybe not do it once consumers auto resubscribe after disconnect // for (Consumer consumer : consumersMap.values()) // consumer.onDisconnect(); if (message != null && connectMessageId.compareAndSet(message.getId(), null)) { scheduleReconnectTimerTask(); } }
@Override public ResponseMessageFuture logout(boolean sendLogout, ResponseListener... listeners) { log.info("Logging out channel %s", clientId); ResponseMessageFuture future = super.logout(sendLogout, listeners); // Force disconnection for streaming transports to ensure next calls are in a new session/authentication context disconnect(); return future; }
@Override public void onError(TransportMessage message, Exception e) { super.onError(message, e); if (message != null && connectMessageId.compareAndSet(message.getId(), null)) scheduleReconnectTimerTask(); }
protected void scheduleReconnectTimerTask() { ReconnectTimerTask task = new ReconnectTimerTask(); ReconnectTimerTask previousTask = reconnectTimerTask.getAndSet(task); if (previousTask != null) previousTask.cancel(); if (reconnectAttempts < reconnectMaxAttempts) { reconnectAttempts++; schedule(task, reconnectIntervalMillis); } }
public MessagingChannel buildMessagingChannel(String channelType, String id, URI uri, Transport transport, MessagingCodec<Message[]> codec) { if (!(channelType.startsWith(ChannelType.LONG_POLLING) || channelType.startsWith(ChannelType.WEBSOCKET))) return null; return new BaseAMFMessagingChannel(codec, transport, id, uri); }
protected void cancelReconnectTimerTask() { ReconnectTimerTask task = reconnectTimerTask.getAndSet(null); if (task != null && task.cancel()) reconnectAttempts = 0L; }
protected void cancelReconnectTimerTask() { ReconnectTimerTask task = reconnectTimerTask.getAndSet(null); if (task != null && task.cancel()) reconnectAttempts = 0L; }
@Override public AMFMessagingChannel newMessagingChannel(String id, URI uri) { return new AMFMessagingChannel(getMessagingTransport(), defaultConfiguration, id, uri); }
@Override public JMFAMFMessagingChannel newMessagingChannel(String id, URI uri) { return new JMFAMFMessagingChannel(getMessagingTransport(), getSharedContext(),id, uri); } }
protected void scheduleReconnectTimerTask() { log.info("Channel %s schedule reconnect", getId()); setPinged(false); setAuthenticated(false); ReconnectTimerTask task = new ReconnectTimerTask(); ReconnectTimerTask previousTask = reconnectTimerTask.getAndSet(task); if (previousTask != null) previousTask.cancel(); if (reconnectAttempts < reconnectMaxAttempts) { reconnectAttempts++; schedule(task, reconnectIntervalMillis); } }
@Override public void onError(TransportMessage message, Exception e) { if (!isStarted()) return; super.onError(message, e); // Mark consumers as unsubscribed // Should maybe not do it once consumers auto resubscribe after disconnect // for (Consumer consumer : consumersMap.values()) // consumer.onDisconnect(); if (message != null && connectMessageId.compareAndSet(message.getId(), null)) { scheduleReconnectTimerTask(); } }
@Override protected void internalStop() { super.internalStop(); cancelReconnectTimerTask(); }
@Override public ResponseMessageFuture logout(boolean sendLogout, ResponseListener... listeners) { log.info("Logging out channel %s", clientId); ResponseMessageFuture future = super.logout(sendLogout, listeners); // Force disconnection for streaming transports to ensure next calls are in a new session/authentication context disconnect(); return future; }
@Override public void run() { connect(); } }
public MessagingChannel buildMessagingChannel(String channelType, String id, URI uri, Transport transport, MessagingCodec<Message[]> codec) { if (!(channelType.startsWith(ChannelType.LONG_POLLING) || channelType.startsWith(ChannelType.WEBSOCKET))) return null; return new BaseAMFMessagingChannel(codec, transport, id, uri); }
protected void cancelReconnectTimerTask() { ReconnectTimerTask task = reconnectTimerTask.getAndSet(null); if (task != null && task.cancel()) reconnectAttempts = 0L; }