Interface ServerSession
- All Superinterfaces:
Session
- All Known Implementing Classes:
ServerSessionImpl
public interface ServerSession extends Session
Objects implementing this interface are the server-side representation of remote Bayeux clients.
ServerSession
contains the queue of messages to be delivered to the client; messages are
normally queued on a ServerSession
by publishing them to a channel to which the session is
subscribed (via ServerChannel.publish(Session, ServerMessage.Mutable)
.
The deliver(Session, ServerMessage.Mutable)
and deliver(Session, String, Object)
methods may be used to directly queue messages to a session without publishing them to all subscribers
of a channel.
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
ServerSession.DeQueueListener
Listeners objects that implement this interface will be notified when the session queue is being drained to actually deliver the messages.static interface
ServerSession.Extension
Extension API forServerSession
.static interface
ServerSession.MaxQueueListener
Listeners objects that implement this interface will be notified when the session queue is full.static interface
ServerSession.MessageListener
Listeners objects that implement this interface will be notified of message sending.static interface
ServerSession.QueueListener
Listener objects that implement this interface will be notified when a message is queued in the session queue.static interface
ServerSession.RemoveListener
Listeners objects that implement this interface will be notified of session removal.static interface
ServerSession.ServerSessionListener
Common interface forServerSession
listeners. -
Method Summary
Modifier and Type Method Description void
addExtension(ServerSession.Extension extension)
Adds the given extension to this session.void
addListener(ServerSession.ServerSessionListener listener)
Adds the given listener to this session.void
deliver(Session sender, String channel, Object data)
Delivers the given information to this session.void
deliver(Session sender, ServerMessage.Mutable message)
Delivers the given message to this session.List<ServerSession.Extension>
getExtensions()
long
getInterval()
LocalSession
getLocalSession()
Set<ServerChannel>
getSubscriptions()
long
getTimeout()
String
getUserAgent()
boolean
isLocalSession()
void
removeExtension(ServerSession.Extension extension)
Removes the given extension from this session.void
removeListener(ServerSession.ServerSessionListener listener)
Removes the given listener from this session.void
setInterval(long interval)
void
setTimeout(long timeout)
Methods inherited from interface org.cometd.bayeux.Session
batch, disconnect, endBatch, getAttribute, getAttributeNames, getId, isConnected, isHandshook, removeAttribute, setAttribute, startBatch
-
Method Details
-
addExtension
Adds the given extension to this session.
- Parameters:
extension
- the extension to add- See Also:
removeExtension(Extension)
-
removeExtension
Removes the given extension from this session.
- Parameters:
extension
- the extension to remove- See Also:
addExtension(Extension)
-
getExtensions
List<ServerSession.Extension> getExtensions()- Returns:
- an immutable list of extensions present in this ServerSession instance
- See Also:
addExtension(Extension)
-
addListener
Adds the given listener to this session.
- Parameters:
listener
- the listener to add- See Also:
removeListener(ServerSessionListener)
-
removeListener
Removes the given listener from this session.
- Parameters:
listener
- the listener to remove- See Also:
addListener(ServerSessionListener)
-
isLocalSession
boolean isLocalSession()- Returns:
- whether this is a session for a local client on server-side
-
getLocalSession
LocalSession getLocalSession()- Returns:
- the
LocalSession
associated with this session, or null if this is a session representing a remote client.
-
deliver
Delivers the given message to this session.
This is different from
ServerChannel.publish(Session, ServerMessage.Mutable)
as the message is delivered only to this session and not to all subscribers of the channel.The message should still have a channel id specified, so that the ClientSession may identify the listeners the message should be delivered to.
- Parameters:
sender
- the session delivering the messagemessage
- the message to deliver- See Also:
deliver(Session, String, Object)
-
deliver
Delivers the given information to this session.
- Parameters:
sender
- the session delivering the messagechannel
- the channel of the messagedata
- the data of the message- See Also:
deliver(Session, ServerMessage.Mutable)
-
getSubscriptions
Set<ServerChannel> getSubscriptions()- Returns:
- the set of channels to which this session is subscribed to
-
getUserAgent
String getUserAgent()- Returns:
- The string indicating the client user agent, or null if not known
-
getInterval
long getInterval()- Returns:
- the period of time, in milliseconds, that the client associated with this session will wait before issuing a connect message, or -1 if the default value is used
- See Also:
ServerTransport.getInterval()
,setInterval(long)
-
setInterval
void setInterval(long interval)- Parameters:
interval
- the period of time, in milliseconds, that the client associated with this session will wait before issuing a connect message
-
getTimeout
long getTimeout()- Returns:
- the period of time, in milliseconds, that the server will hold connect messages for this session or -1 if the default value is used
- See Also:
ServerTransport.getTimeout()
-
setTimeout
void setTimeout(long timeout)- Parameters:
timeout
- the period of time, in milliseconds, that the server will hold connect messages for this session
-