/** * <p>Equivalent to {@link #unsubscribe(ClientSessionChannel.MessageListener, ClientSession.MessageListener) * unsubscribe(listener, null)}.</p> * * @param listener the listener to unsubscribe * @return whether the unsubscribe message has been sent */ public default boolean unsubscribe(MessageListener listener) { return unsubscribe(listener, ClientSession.MessageListener.NOOP); }
/** * <p>Equivalent to {@link #unsubscribe(Message.Mutable, MessageListener, ClientSession.MessageListener) * unsubscribe(null, listener, callback)}.</p> * * @param listener the listener to unsubscribe * @param callback the callback to notify of the unsubscribe result * @return whether the unsubscribe message has been sent */ public default boolean unsubscribe(MessageListener listener, ClientSession.MessageListener callback) { return unsubscribe(null, listener, callback); }
private boolean deprocessSubscription(Object bean) { boolean result = false; List<SubscriptionCallback> callbacks = subscribers.remove(bean); if (callbacks != null) { for (SubscriptionCallback callback : callbacks) { callback.localSession.getChannel(callback.subscription).unsubscribe(callback); result = true; } } return result; }
/** * @param listener the listener to unsubscribe * @param callback the callback to notify of the unsubscribe result * @deprecated use {@link #unsubscribe(MessageListener, ClientSession.MessageListener)} instead */ @Deprecated public default void unsubscribe(MessageListener listener, MessageListener callback) { unsubscribe(listener, message -> callback.onMessage(this, message)); }
private boolean deprocessSubscription(Object bean) { boolean result = false; List<SubscriptionCallback> callbacks = subscribers.remove(bean); if (callbacks != null) { for (SubscriptionCallback callback : callbacks) { clientSession.getChannel(callback.subscription).unsubscribe(callback); result = true; } } return result; }
@Override public void cancel() { replay.remove(topicWithoutQueryString(topic)); if (running.get() && client != null) { client.getChannel(topic).unsubscribe(); subscriptions.remove(this); } }