Interface Channel
- All Known Subinterfaces:
ClientSessionChannel
,ConfigurableServerChannel
,ServerChannel
- All Known Implementing Classes:
AbstractClientSession.AbstractSessionChannel
,BayeuxClient.BayeuxClientChannel
,LocalSessionImpl.LocalChannel
,ServerChannelImpl
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
Modifier and TypeFieldDescriptionstatic final String
Constant representing the meta prefixstatic final String
Constant representing the connect meta channelstatic final String
Constant representing the disconnect meta channelstatic final String
Constant representing the handshake meta channel.static final String
Constant representing the subscribe meta channelstatic final String
Constant representing the unsubscribe meta channelstatic final String
Constant representing the service prefix -
Method Summary
Modifier and TypeMethodDescriptiongetAttribute
(String name) Retrieves the value of named channel attribute.getId()
boolean
A broadcasting channel is a channel that is neither ameta channel
nor aservice channel
.boolean
Tells whether a channel contains the deep wild characters '**', for example/foo/**
boolean
isMeta()
Tells whether the channel is a meta channel, that is if itsid
starts with"/meta/"
.boolean
Tells whether the channel is a service channel, that is if itsid
starts with"/service/"
.boolean
isWild()
Tells whether a channel contains the wild character '*', for example/foo/*
or if it isisDeepWild()
.removeAttribute
(String name) Removes a named channel attribute.void
setAttribute
(String name, Object value) Sets a named channel attribute value.
-
Field Details
-
META
-
SERVICE
-
META_HANDSHAKE
-
META_CONNECT
-
META_SUBSCRIBE
-
META_UNSUBSCRIBE
-
META_DISCONNECT
-
-
Method Details
-
getId
String getId()- Returns:
- The channel id as a String
-
getChannelId
-
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 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
-
getAttribute
-
getAttributeNames
-
removeAttribute
-