Interface Channel
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 Summary
Fields Modifier and Type Field Description static StringMETAConstant representing the meta prefixstatic StringMETA_CONNECTConstant representing the connect meta channelstatic StringMETA_DISCONNECTConstant representing the disconnect meta channelstatic StringMETA_HANDSHAKEConstant representing the handshake meta channel.static StringMETA_SUBSCRIBEConstant representing the subscribe meta channelstatic StringMETA_UNSUBSCRIBEConstant representing the unsubscribe meta channelstatic StringSERVICEConstant representing the service prefix -
Method Summary
Modifier and Type Method Description ObjectgetAttribute(String name)Retrieves the value of named channel attribute.Set<String>getAttributeNames()ChannelIdgetChannelId()StringgetId()booleanisBroadcast()A broadcasting channel is a channel that is neither ameta channelnor aservice channel.booleanisDeepWild()Tells whether a channel contains the deep wild characters '**', for example/foo/**booleanisMeta()Tells whether the channel is a meta channel, that is if itsidstarts with"/meta/".booleanisService()Tells whether the channel is a service channel, that is if itsidstarts with"/service/".booleanisWild()Tells whether a channel contains the wild character '*', for example/foo/*or if it isisDeepWild().ObjectremoveAttribute(String name)Removes a named channel attribute.voidsetAttribute(String name, Object value)Sets a named channel attribute value.
-
Field Details
-
META
Constant representing the meta prefix- See Also:
- Constant Field Values
-
SERVICE
Constant representing the service prefix- See Also:
- Constant Field Values
-
META_HANDSHAKE
Constant representing the handshake meta channel.- See Also:
- Constant Field Values
-
META_CONNECT
Constant representing the connect meta channel- See Also:
- Constant Field Values
-
META_SUBSCRIBE
Constant representing the subscribe meta channel- See Also:
- Constant Field Values
-
META_UNSUBSCRIBE
Constant representing the unsubscribe meta channel- See Also:
- Constant Field Values
-
META_DISCONNECT
Constant representing the disconnect meta channel- See Also:
- Constant Field Values
-
-
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
idstarts 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
idstarts 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 channelnor aservice 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 isisDeepWild().- 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
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 namevalue- the attribute value
-
getAttribute
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
- Returns:
- the list of channel attribute names.
-
removeAttribute
Removes a named channel attribute.
- Parameters:
name- the name of the attribute- Returns:
- the value of the attribute
-