Interface Channel

All Known Subinterfaces:
ClientSessionChannel, ConfigurableServerChannel, ServerChannel
All Known Implementing Classes:
AbstractClientSession.AbstractSessionChannel, BayeuxClient.BayeuxClientChannel, LocalSessionImpl.LocalChannel, ServerChannelImpl

public interface Channel

A Bayeux channel is the primary message routing mechanism within Bayeux: both Bayeux clients and Bayeux server use channels to group listeners that are interested in receiving messages with that channel.

This interface is the common root for both the client-side representation of a channel and the server-side representation of a channel.

Channels are identified with strings that look like paths (e.g. "/foo/bar") called "channel id". Meta channels have channel ids starting with "/meta/" and are reserved for the operation of they Bayeux protocol. Service channels have channel ids starting with "/service/" and are channels for which publish is disabled, so that only server side listeners will receive the messages.

A channel id may also be specified with wildcards. For example "/meta/*" refers to all top level meta channels like "/meta/subscribe" or "/meta/handshake". The channel "/foo/**" is deeply wild and refers to all channels like "/foo/bar", "/foo/bar/bob" and "/foo/bar/wibble/bip". Wildcards can only be specified as last segment of a channel; therefore channel "/foo/*/bar/** is an invalid channel.

  • Field Details

  • Method Details

    • getId

      String getId()
      Returns:
      The channel id as a String
    • getChannelId

      ChannelId getChannelId()
      Returns:
      The channel ID as a ChannelId
    • isMeta

      boolean isMeta()

      Tells whether the channel is a meta channel, that is if its id starts with "/meta/".

      Returns:
      true if the channel is a meta channel
    • isService

      boolean isService()

      Tells whether the channel is a service channel, that is if its id starts with "/service/".

      Returns:
      true if the channel is a service channel
    • isBroadcast

      boolean isBroadcast()

      A broadcasting channel is a channel that is neither a meta channel nor a service channel.

      Returns:
      whether the channel is a broadcasting channel
    • isWild

      boolean isWild()

      Tells whether a channel contains the wild character '*', for example /foo/* or if it is isDeepWild().

      Returns:
      true if the channel contains the '*' or '**' characters
    • isDeepWild

      boolean isDeepWild()

      Tells whether a channel contains the deep wild characters '**', for example /foo/**

      Returns:
      true if the channel contains the '**' characters
    • setAttribute

      void setAttribute(String name, Object value)

      Sets a named channel attribute value.

      Channel attributes are convenience data that allows arbitrary application data to be associated with a channel.

      Parameters:
      name - the attribute name
      value - the attribute value
    • getAttribute

      Object getAttribute(String name)

      Retrieves the value of named channel attribute.

      Parameters:
      name - the name of the attribute
      Returns:
      the attribute value or null if the attribute is not present
    • getAttributeNames

      Set<String> getAttributeNames()
      Returns:
      the list of channel attribute names.
    • removeAttribute

      Object removeAttribute(String name)

      Removes a named channel attribute.

      Parameters:
      name - the name of the attribute
      Returns:
      the value of the attribute