/** * <p>Equivalent to {@link #subscribe(ClientSessionChannel.MessageListener, ClientSession.MessageListener) * subscribe(listener, null)}.</p> * * @param listener the listener to register and invoke when a message arrives on this channel. * @return whether the subscribe message has been sent */ public default boolean subscribe(MessageListener listener) { return subscribe(listener, ClientSession.MessageListener.NOOP); }
/** * <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>Publishes the given {@code data} onto this channel.</p> * <p>The {@code data} published must not be null and can be any object that * can be natively converted to JSON (numbers, strings, arrays, lists, maps), * or objects for which a JSON converter has been registered with the * infrastructure responsible of the JSON conversion.</p> * * @param data the data to publish * @see #publish(Object, ClientSession.MessageListener) */ public default void publish(Object data) { publish(data, ClientSession.MessageListener.NOOP); }
throw new Exception("Login failed !"); client.getChannel(Channel.META_HANDSHAKE).addListener (new ClientSessionChannel.MessageListener() { @Override client.getChannel(Channel.META_CONNECT).addListener( new ClientSessionChannel.MessageListener() { public void onMessage(ClientSessionChannel channel, Message message) { client.getChannel(Channel.META_SUBSCRIBE).addListener( new ClientSessionChannel.MessageListener() { client.getChannel(channelName).subscribe(messageListener);
getChannel(Channel.META_CONNECT).addListener(lastConnectListener); getChannel(Channel.META_CONNECT).removeListener(lastConnectListener);
private void processMetaHandshakeListener(Object bean) { if (bean != null) { MetaHandshakeListener listener = new MetaHandshakeListener(bean); ClientSessionChannel.MessageListener existing = handshakeListeners.putIfAbsent(bean, listener); if (existing == null) { clientSession.getChannel(Channel.META_HANDSHAKE).addListener(listener); } } }
private void deprocessMetaHandshakeListener(Object bean) { ClientSessionChannel.MessageListener listener = handshakeListeners.remove(bean); if (listener != null) { clientSession.getChannel(Channel.META_HANDSHAKE).removeListener(listener); } }
@Override public void onMessage(ClientSessionChannel clientSessionChannel, Message message) { if (logSuccess && message.isSuccessful()) { System.out.println(">>>>"); printPrefix(); System.out.println("Success:[" + clientSessionChannel.getId() + "]"); System.out.println(message); System.out.println("<<<<"); } if (logFailure && !message.isSuccessful()) { System.out.println(">>>>"); printPrefix(); System.out.println("Failure:[" + clientSessionChannel.getId() + "]"); System.out.println(message); System.out.println("<<<<"); } }
private void addListeners(BayeuxClient client) { for (MessageListenerInfo info : listenerInfos) { client.getChannel(info.getChannelName()).addListener(info.getMessageListener()); } }
private boolean deprocessListener(Object bean) { boolean result = false; List<ListenerCallback> callbacks = listeners.remove(bean); if (callbacks != null) { for (ListenerCallback callback : callbacks) { ClientSessionChannel channel = clientSession.getChannel(callback.subscription); if (channel != null) { channel.removeListener(callback); result = true; } } } return result; }
/** * <p>Equivalent to {@link #subscribe(Message.Mutable, MessageListener, ClientSession.MessageListener) * subscribe(null, listener, callback)}.</p> * * @param listener the listener to register and invoke when a message arrives on this channel * @param callback the callback to notify of the subscribe result * @return whether the subscribe message has been sent */ public default boolean subscribe(MessageListener listener, ClientSession.MessageListener callback) { return subscribe(null, listener, callback); }
/** * <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); }
clientSession.getChannel(channel).addListener(listenerCallback);
/** * @param message the message to publish * @param callback the message callback to notify of the publish result * @deprecated use {@link #publish(Message.Mutable, ClientSession.MessageListener)} instead */ @Deprecated public default void publish(Message.Mutable message, MessageListener callback) { publish(message, m -> callback.onMessage(this, m)); }
/** * @param listener the listener to register and invoke when a message arrives on this channel * @param callback the callback to notify of the subscribe result * @deprecated use {@link #subscribe(MessageListener, ClientSession.MessageListener)} instead */ @Deprecated public default void subscribe(MessageListener listener, MessageListener callback) { subscribe(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) { callback.localSession.getChannel(callback.subscription).unsubscribe(callback); result = true; } } return result; }
/** * @param data the data to publish * @param callback the message callback to notify of the publish result * @deprecated use {@link #publish(Object, ClientSession.MessageListener)} instead */ @Deprecated public default void publish(Object data, MessageListener callback) { publish(data, message -> callback.onMessage(this, message)); }
private void subscribe() { clientSession.getChannel(subscription).subscribe(this); } }
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; }
public void testPubSub() { String pubSubUrl = "http://" + cometdHost + ":" + cometdListenPort + "/cometd"; String fraudAlertChannel = "/fraudAlert"; HttpClient httpClient = new HttpClient(); try { httpClient.start(); } catch (Exception e) { e.printStackTrace(); } // Prepare the transport Map<String, Object> options = new HashMap<String, Object>(); ClientTransport transport = new LongPollingTransport(options, httpClient); // Create the BayeuxClient BayeuxClient bayuexClient = new BayeuxClient(pubSubUrl, transport); bayuexClient.handshake(); boolean handshaken = bayuexClient.waitFor(5000, BayeuxClient.State.CONNECTED); if (handshaken) { System.out.println("Connected to Cometd Http PubSub Platform"); } else{ System.out.println("Could not connect to Cometd Http PubSub Platform"); } bayuexClient.getChannel(fraudAlertChannel).publish("TEST"); }