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.