Interface BayeuxServer

All Superinterfaces:
org.cometd.bayeux.Bayeux

public interface BayeuxServer extends org.cometd.bayeux.Bayeux

The server-side Bayeux interface.

An instance of the BayeuxServer interface is available to web applications via the ""org.cometd.bayeux"" attribute of the javax.servlet.ServletContext.

The BayeuxServer APIs give access to the ServerSessions via the getSession(String) method. It also allows new LocalSession to be created within the server using the newLocalSession(String) method.

ServerChannel instances may be accessed via the getChannel(String) method, but the server has no direct relationship with ClientSessionChannels or ClientSession.

If subscription semantics is required, then the newLocalSession(String) method should be used to create a LocalSession that can subscribe and publish like a client-side Bayeux session.

  • Field Details

    • ATTRIBUTE

      static final String ATTRIBUTE
      ServletContext attribute name used to obtain the Bayeux object
      See Also:
  • Method Details

    • addExtension

      void addExtension(BayeuxServer.Extension extension)

      Adds the given extension to this Bayeux object.

      Parameters:
      extension - the extension to add
      See Also:
    • removeExtension

      void removeExtension(BayeuxServer.Extension extension)

      Removes the given extension from this Bayeux object.

      Parameters:
      extension - the extension to remove
      See Also:
    • getExtensions

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

      void addListener(BayeuxServer.BayeuxServerListener listener)

      Adds a listener to this Bayeux object.

      Parameters:
      listener - the listener to add
      See Also:
    • removeListener

      void removeListener(BayeuxServer.BayeuxServerListener listener)

      Removes a listener from this Bayeux object.

      Parameters:
      listener - the listener to remove
      See Also:
    • getChannel

      ServerChannel getChannel(String channelId)
      Parameters:
      channelId - the channel identifier
      Returns:
      a ServerChannel with the given channelId, or null if no such channel exists
      See Also:
    • getChannels

      List<ServerChannel> getChannels()
      Returns:
      the list of channels known to this BayeuxServer object
    • createChannelIfAbsent

      org.cometd.bayeux.MarkedReference<ServerChannel> createChannelIfAbsent(String channelName, ConfigurableServerChannel.Initializer... initializers)

      Creates a ServerChannel and initializes it atomically if the channel does not exist, or returns it if it already exists.

      This method can be used instead of adding a BayeuxServer.ChannelListener to atomically initialize a channel. The initializers will be called before any other thread can access the new channel instance.

      This method should be used when a channel needs to be initialized (e.g. by adding listeners) before any publish or subscribes can occur on the channel, or before any other thread may concurrently create the same channel.

      Parameters:
      channelName - the channel name
      initializers - the initializers invoked to configure the channel
      Returns:
      a MarkedReference whose reference is the channel, and the mark signals whether the channel has been created because it did not exist before.
    • getSession

      ServerSession getSession(String clientId)
      Parameters:
      clientId - the ServerSession identifier
      Returns:
      the ServerSession with the given clientId or null if no such valid session exists.
    • getSessions

      List<ServerSession> getSessions()
      Returns:
      the list of ServerSessions known to this BayeuxServer object
    • removeSession

      boolean removeSession(ServerSession session)

      Removes the given session from this BayeuxServer.

      This method triggers the invocation of all listeners that would be called if the session was disconnected or if the session timed out.

      Parameters:
      session - the session to remove
      Returns:
      true if the session was known to this BayeuxServer and was removed
    • newLocalSession

      LocalSession newLocalSession(String idHint)

      Creates a new LocalSession.

      A LocalSession is a server-side ClientSession that allows server-side code to have special clients (resident within the same JVM) that can be used to publish and subscribe like a client-side session would do.

      Parameters:
      idHint - a hint to be included in the unique clientId of the session.
      Returns:
      a new LocalSession
    • newMessage

      ServerMessage.Mutable newMessage()
      Returns:
      a new or recycled mutable message instance.
    • getSecurityPolicy

      SecurityPolicy getSecurityPolicy()
      Returns:
      the SecurityPolicy associated with this session
      See Also:
    • setSecurityPolicy

      void setSecurityPolicy(SecurityPolicy securityPolicy)
      Parameters:
      securityPolicy - the SecurityPolicy associated with this session
      See Also: