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, Promise)
.
The deliver(Session, ServerMessage.Mutable, Promise)
and deliver(Session, String, Object, Promise)
methods may be used to directly queue messages to a session without publishing them to all subscribers
of a channel.
Modifier and Type | Interface and Description |
---|---|
static interface |
ServerSession.AddedListener
Listener objects that implement this interface will be notified of session addition.
|
static interface |
ServerSession.AddListener
Deprecated.
use
ServerSession.AddedListener instead |
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 for
ServerSession . |
static interface |
ServerSession.HeartBeatListener
Listeners objects that implement this interface will be notified when a
/meta/connect
message is suspended by the server, and when it is subsequently resumed. |
static interface |
ServerSession.MaxQueueListener
Deprecated.
use
ServerSession.QueueMaxedListener instead |
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.QueueMaxedListener
Listeners objects that implement this interface will be notified when the session queue is full.
|
static interface |
ServerSession.RemovedListener
Listeners objects that implement this interface will be notified of session removal.
|
static interface |
ServerSession.RemoveListener
Deprecated.
use
ServerSession.RemovedListener instead |
static interface |
ServerSession.ServerSessionListener
Common interface for
ServerSession listeners. |
Modifier and Type | Method and 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,
ServerMessage.Mutable message,
Promise<Boolean> promise)
Delivers the given message to this session.
|
void |
deliver(Session sender,
String channel,
Object data,
Promise<Boolean> promise)
Delivers the given information to this session.
|
List<ServerSession.Extension> |
getExtensions() |
long |
getInterval() |
LocalSession |
getLocalSession() |
long |
getMaxInterval() |
ServerTransport |
getServerTransport() |
Set<ServerChannel> |
getSubscriptions() |
long |
getTimeout() |
String |
getUserAgent() |
boolean |
isBroadcastToPublisher() |
boolean |
isLocalSession() |
boolean |
isMetaConnectDeliveryOnly() |
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 |
setBroadcastToPublisher(boolean broadcastToPublisher)
Sets whether this session sends messages back to itself.
|
void |
setInterval(long interval) |
void |
setMaxInterval(long maxInterval) |
void |
setMetaConnectDeliveryOnly(boolean metaConnectDeliveryOnly)
Sets whether delivery of messages only happen via the
/meta/connect channel. |
void |
setTimeout(long timeout) |
batch, disconnect, endBatch, getAttribute, getAttributeNames, getId, isConnected, isHandshook, removeAttribute, setAttribute, startBatch
void addExtension(ServerSession.Extension extension)
Adds the given extension to this session.
extension
- the extension to addremoveExtension(Extension)
void removeExtension(ServerSession.Extension extension)
Removes the given extension from this session.
extension
- the extension to removeaddExtension(Extension)
List<ServerSession.Extension> getExtensions()
addExtension(Extension)
void addListener(ServerSession.ServerSessionListener listener)
Adds the given listener to this session.
listener
- the listener to addremoveListener(ServerSessionListener)
void removeListener(ServerSession.ServerSessionListener listener)
Removes the given listener from this session.
listener
- the listener to removeaddListener(ServerSessionListener)
ServerTransport getServerTransport()
boolean isLocalSession()
LocalSession getLocalSession()
LocalSession
associated with this session,
or null if this is a session representing a remote client.void deliver(Session sender, ServerMessage.Mutable message, Promise<Boolean> promise)
Delivers the given message to this session.
This is different from ServerChannel.publish(Session, ServerMessage.Mutable, Promise)
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.
sender
- the session delivering the messagemessage
- the message to deliverpromise
- the promise to notify with the result of the deliverdeliver(Session, String, Object, Promise)
void deliver(Session sender, String channel, Object data, Promise<Boolean> promise)
Delivers the given information to this session.
sender
- the session delivering the messagechannel
- the channel of the messagedata
- the data of the messagepromise
- the promise to notify with the result of the deliverdeliver(Session, ServerMessage.Mutable, Promise)
Set<ServerChannel> getSubscriptions()
String getUserAgent()
long getInterval()
ServerTransport.getInterval()
,
setInterval(long)
void setInterval(long interval)
interval
- the period of time, in milliseconds, that the client
associated with this session will wait before issuing a connect messagelong getTimeout()
ServerTransport.getTimeout()
void setTimeout(long timeout)
timeout
- the period of time, in milliseconds, that the server will hold connect
messages for this sessionlong getMaxInterval()
void setMaxInterval(long maxInterval)
maxInterval
- the max period of time, in milliseconds, that the server waits
before expiring the sessionboolean isMetaConnectDeliveryOnly()
/meta/connect
channelvoid setMetaConnectDeliveryOnly(boolean metaConnectDeliveryOnly)
Sets whether delivery of messages only happen via the /meta/connect
channel.
Transports that use more than one connection to the server (e.g. HTTP transports) may deliver some messages in one connection and some in another connection, causing messages to arrive out-of-order.
Forcing messages to be delivered only via the /meta/connect
channel guarantees
server-to-client message ordering.
metaConnectDeliveryOnly
- whether delivery of messages only happens via the
/meta/connect
channelboolean isBroadcastToPublisher()
void setBroadcastToPublisher(boolean broadcastToPublisher)
broadcastToPublisher
- whether this session sends messages back to itselfCopyright © 2008–2024 The CometD Project. All rights reserved.