Interface ServerChannel
- All Superinterfaces:
Channel
,ConfigurableServerChannel
- All Known Implementing Classes:
ServerChannelImpl
Server side representation of a Bayeux channel.
ServerChannel
is the entity that holds a set of
ServerSession
s that are subscribed to the channel itself.
A message published to a ServerChannel
will be delivered to
all the ServerSession
's subscribed to the channel.
Contrary to their client side counterpart (ClientSessionChannel
)
a ServerChannel
is not scoped with a session.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Listeners objects that implement this interface will be notified of message publish.static interface
Listener objects that implement this interface will be notified of subscription events.Nested classes/interfaces inherited from interface org.cometd.bayeux.server.ConfigurableServerChannel
ConfigurableServerChannel.Initializer, ConfigurableServerChannel.ServerChannelListener
-
Field Summary
Fields inherited from interface org.cometd.bayeux.Channel
META, META_CONNECT, META_DISCONNECT, META_HANDSHAKE, META_SUBSCRIBE, META_UNSUBSCRIBE, SERVICE
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Publishes the given information to this channel.void
publish
(Session from, ServerMessage.Mutable message, Promise<Boolean> promise) Publishes the given message to this channel, delivering the message to all theServerSession
s subscribed to this channel.void
remove()
Removes this channel, and all the children channels.boolean
subscribe
(ServerSession session) Subscribes the given session to this channel.boolean
unsubscribe
(ServerSession session) Unsubscribes the given session from this channel.Methods inherited from interface org.cometd.bayeux.Channel
getAttribute, getAttributeNames, getChannelId, getId, isBroadcast, isDeepWild, isMeta, isService, isWild, removeAttribute, setAttribute
Methods inherited from interface org.cometd.bayeux.server.ConfigurableServerChannel
addAuthorizer, addListener, getAuthorizers, getLazyTimeout, getListeners, isBroadcastToPublisher, isLazy, isPersistent, removeAuthorizer, removeListener, setBroadcastToPublisher, setLazy, setLazyTimeout, setPersistent
-
Method Details
-
getSubscribers
Set<ServerSession> getSubscribers()- Returns:
- a snapshot of the set of subscribers of this channel
-
subscribe
Subscribes the given session to this channel.
Subscriptions are effective for
broadcast channels
and are successful no-operations forservice channels
.The subscription may fail if the session is already subscribed to the channel or if the session is expired or if the channel is a meta channel.
- Parameters:
session
- the session to subscribe- Returns:
- whether the subscription succeeded
- See Also:
-
unsubscribe
Unsubscribes the given session from this channel.
Unsubscriptions are effective for
broadcast channels
and are successful no-operations forservice channels
.The unsubscription may fail if the session is already unsubscribed from the channel or if the session is expired or if the channel is a meta channel.
- Parameters:
session
- the session to unsubscribe- Returns:
- whether the unsubscription succeeded
-
publish
Publishes the given message to this channel, delivering the message to all the
ServerSession
s subscribed to this channel.- Parameters:
from
- the session from which the message originatesmessage
- the message to publishpromise
- the promise to notify whether the message has been published- See Also:
-
publish
-
remove
void remove()Removes this channel, and all the children channels.
If channel "/foo", "/foo/bar" and "/foo/blip" exist, removing channel "/foo" will remove also "/foo/bar" and "/foo/blip".
The removal will notify
BayeuxServer.ChannelListener
listeners.
-