Interface ClientSession

All Superinterfaces:
Session
All Known Subinterfaces:
LocalSession
All Known Implementing Classes:
AbstractClientSession, BayeuxClient, LocalSessionImpl, OortComet

public interface ClientSession
extends Session

This interface represents the client side Bayeux session.

In addition to the common Bayeux session, this interface provides method to configure extension, access channels and to initiate the communication with a Bayeux server(s).

  • Method Details

    • addExtension

      void addExtension​(ClientSession.Extension extension)
      Adds an extension to this session.
      Parameters:
      extension - the extension to add
      See Also:
      removeExtension(Extension)
    • removeExtension

      void removeExtension​(ClientSession.Extension extension)
      Removes an extension from this session.
      Parameters:
      extension - the extension to remove
      See Also:
      addExtension(Extension)
    • getExtensions

      List<ClientSession.Extension> getExtensions()
      Returns:
      an immutable list of extensions present in this ClientSession instance
      See Also:
      addExtension(Extension)
    • handshake

      void handshake()

      Equivalent to handshake(null).

    • handshake

      void handshake​(Map<String,​Object> template)
      Parameters:
      template - additional fields to add to the handshake message.
    • handshake

      void handshake​(Map<String,​Object> template, ClientSessionChannel.MessageListener callback)

      Initiates the bayeux protocol handshake with the server(s).

      The handshake initiated by this method is asynchronous and does not wait for the handshake response.

      Parameters:
      template - additional fields to add to the handshake message.
      callback - the message listener to notify of the handshake result
    • disconnect

      void disconnect​(ClientSessionChannel.MessageListener callback)

      Disconnects this session, ending the link between the client and the server peers.

      Parameters:
      callback - the message listener to notify of the disconnect result
    • getChannel

      ClientSessionChannel getChannel​(String channelName)

      Returns a client side channel scoped by this session.

      The channel name may be for a specific channel (e.g. "/foo/bar") or for a wild channel (e.g. "/meta/**" or "/foo/*").

      This method will always return a channel, even if the the channel has not been created on the server side. The server side channel is only involved once a publish or subscribe method is called on the channel returned by this method.

      Typical usage examples are:

           clientSession.getChannel("/foo/bar").subscribe(mySubscriptionListener);
           clientSession.getChannel("/foo/bar").publish("Hello");
           clientSession.getChannel("/meta/*").addListener(myMetaChannelListener);
       
      Parameters:
      channelName - specific or wild channel name.
      Returns:
      a channel scoped by this session.
    • remoteCall

      void remoteCall​(String target, Object data, ClientSession.MessageListener callback)

      Performs a remote call to the server, to the specified target, and with the given data as payload.

      The remote call response will be delivered via the callback parameter.

      Typical usage:

       clientSession.remoteCall("getOnlineStatus", userId, new MessageListener()
       {
           @Override
           public void onMessage(Message message)
           {
               if (message.isSuccessful())
               {
                   String status = (String)message.getData();
                   // Update UI with online status.
               }
               else
               {
                   // Remote call failed.
               }
           }
       });
       
      Parameters:
      target - the remote call target
      data - the remote call parameters
      callback - the listener that receives the remote call response