Package org.cometd.server
Class ServerSessionImpl
- java.lang.Object
-
- org.cometd.server.ServerSessionImpl
-
- All Implemented Interfaces:
org.cometd.bayeux.server.ServerSession
,org.cometd.bayeux.Session
,org.eclipse.jetty.util.component.Dumpable
public class ServerSessionImpl extends java.lang.Object implements org.cometd.bayeux.server.ServerSession, org.eclipse.jetty.util.component.Dumpable
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.cometd.bayeux.server.ServerSession
org.cometd.bayeux.server.ServerSession.AddListener, org.cometd.bayeux.server.ServerSession.DeQueueListener, org.cometd.bayeux.server.ServerSession.Extension, org.cometd.bayeux.server.ServerSession.HeartBeatListener, org.cometd.bayeux.server.ServerSession.MaxQueueListener, org.cometd.bayeux.server.ServerSession.MessageListener, org.cometd.bayeux.server.ServerSession.QueueListener, org.cometd.bayeux.server.ServerSession.RemoveListener, org.cometd.bayeux.server.ServerSession.ServerSessionListener
-
-
Constructor Summary
Constructors Constructor Description ServerSessionImpl(BayeuxServerImpl bayeux)
ServerSessionImpl(BayeuxServerImpl bayeux, LocalSessionImpl localSession, java.lang.String idHint)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
added()
void
addExtension(org.cometd.bayeux.server.ServerSession.Extension extension)
void
addListener(org.cometd.bayeux.server.ServerSession.ServerSessionListener listener)
protected void
addMessage(org.cometd.bayeux.server.ServerMessage message)
void
batch(java.lang.Runnable batch)
long
calculateInterval(long defaultInterval)
long
calculateTimeout(long defaultTimeout)
void
cancelExpiration(boolean metaConnect)
void
cancelSchedule()
protected boolean
connected()
void
deliver(org.cometd.bayeux.Session sender, java.lang.String channelId, java.lang.Object data, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
void
deliver(org.cometd.bayeux.Session sender, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
protected void
deliver1(org.cometd.bayeux.server.ServerSession sender, org.cometd.bayeux.server.ServerMessage.Mutable mutable, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
void
disconnect()
java.lang.String
dump()
void
dump(java.lang.Appendable out, java.lang.String indent)
boolean
endBatch()
protected void
extendIncoming(org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
protected void
extendOutgoing(org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<org.cometd.bayeux.server.ServerMessage.Mutable> promise)
void
flush()
java.lang.Object
getAttribute(java.lang.String name)
java.util.Set<java.lang.String>
getAttributeNames()
BayeuxServerImpl
getBayeuxServer()
java.lang.String
getBrowserId()
java.util.List<org.cometd.bayeux.server.ServerSession.Extension>
getExtensions()
java.lang.String
getId()
long
getInterval()
java.util.List<org.cometd.bayeux.server.ServerSession.ServerSessionListener>
getListeners()
org.cometd.bayeux.server.LocalSession
getLocalSession()
java.lang.Object
getLock()
protected long
getMaxInterval()
java.util.Queue<org.cometd.bayeux.server.ServerMessage>
getQueue()
org.cometd.bayeux.server.ServerTransport
getServerTransport()
java.util.Set<org.cometd.bayeux.server.ServerChannel>
getSubscriptions()
long
getTimeout()
java.lang.String
getUserAgent()
protected boolean
handshake(org.cometd.bayeux.server.ServerMessage.Mutable message)
boolean
hasNonLazyMessages()
boolean
isAllowMessageDeliveryDuringHandshake()
boolean
isBroadcastToPublisher()
boolean
isConnected()
boolean
isDisconnected()
boolean
isHandshook()
boolean
isLocalSession()
boolean
isMetaConnectDeliveryOnly()
boolean
isTerminated()
void
notifyResumed(org.cometd.bayeux.server.ServerMessage message, boolean timeout)
void
notifySuspended(org.cometd.bayeux.server.ServerMessage message, long timeout)
void
reAdvise()
java.lang.Object
removeAttribute(java.lang.String name)
protected boolean
removed(boolean timedOut)
void
removeExtension(org.cometd.bayeux.server.ServerSession.Extension extension)
void
removeListener(org.cometd.bayeux.server.ServerSession.ServerSessionListener listener)
void
scheduleExpiration(long defaultInterval)
void
setAllowMessageDeliveryDuringHandshake(boolean allow)
void
setAttribute(java.lang.String name, java.lang.Object value)
void
setBroadcastToPublisher(boolean value)
void
setBrowserId(java.lang.String browserId)
Sets a remote client identifier, typically a browser.void
setInterval(long intervalMS)
void
setMetaConnectDeliveryOnly(boolean meta)
void
setScheduler(AbstractServerTransport.Scheduler newScheduler)
void
setServerTransport(org.cometd.bayeux.server.ServerTransport transport)
void
setTimeout(long timeoutMS)
void
setUserAgent(java.lang.String userAgent)
boolean
shouldSchedule()
void
startBatch()
protected boolean
subscribe(ServerChannelImpl channel)
protected void
sweep(long now)
java.util.Map<java.lang.String,java.lang.Object>
takeAdvice(org.cometd.bayeux.server.ServerTransport transport)
java.util.List<org.cometd.bayeux.server.ServerMessage>
takeQueue()
java.lang.String
toString()
protected void
unsubscribedFrom(ServerChannelImpl channel)
void
updateTransientInterval(long interval)
Updates the transient interval with the given value.void
updateTransientTimeout(long timeout)
Updates the transient timeout with the given value.
-
-
-
Constructor Detail
-
ServerSessionImpl
public ServerSessionImpl(BayeuxServerImpl bayeux)
-
ServerSessionImpl
public ServerSessionImpl(BayeuxServerImpl bayeux, LocalSessionImpl localSession, java.lang.String idHint)
-
-
Method Detail
-
getBayeuxServer
public BayeuxServerImpl getBayeuxServer()
-
getUserAgent
public java.lang.String getUserAgent()
- Specified by:
getUserAgent
in interfaceorg.cometd.bayeux.server.ServerSession
- Returns:
- the remote user agent
-
setUserAgent
public void setUserAgent(java.lang.String userAgent)
- Parameters:
userAgent
- the remote user agent
-
getBrowserId
public java.lang.String getBrowserId()
- Returns:
- the remote client identifier
-
setBrowserId
public void setBrowserId(java.lang.String browserId)
Sets a remote client identifier, typically a browser.
- Parameters:
browserId
- the remote client identifier
-
sweep
protected void sweep(long now)
-
getSubscriptions
public java.util.Set<org.cometd.bayeux.server.ServerChannel> getSubscriptions()
- Specified by:
getSubscriptions
in interfaceorg.cometd.bayeux.server.ServerSession
-
addExtension
public void addExtension(org.cometd.bayeux.server.ServerSession.Extension extension)
- Specified by:
addExtension
in interfaceorg.cometd.bayeux.server.ServerSession
-
removeExtension
public void removeExtension(org.cometd.bayeux.server.ServerSession.Extension extension)
- Specified by:
removeExtension
in interfaceorg.cometd.bayeux.server.ServerSession
-
getExtensions
public java.util.List<org.cometd.bayeux.server.ServerSession.Extension> getExtensions()
- Specified by:
getExtensions
in interfaceorg.cometd.bayeux.server.ServerSession
-
batch
public void batch(java.lang.Runnable batch)
- Specified by:
batch
in interfaceorg.cometd.bayeux.Session
-
deliver
public void deliver(org.cometd.bayeux.Session sender, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
- Specified by:
deliver
in interfaceorg.cometd.bayeux.server.ServerSession
-
deliver
public void deliver(org.cometd.bayeux.Session sender, java.lang.String channelId, java.lang.Object data, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
- Specified by:
deliver
in interfaceorg.cometd.bayeux.server.ServerSession
-
deliver1
protected void deliver1(org.cometd.bayeux.server.ServerSession sender, org.cometd.bayeux.server.ServerMessage.Mutable mutable, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
-
extendOutgoing
protected void extendOutgoing(org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<org.cometd.bayeux.server.ServerMessage.Mutable> promise)
-
handshake
protected boolean handshake(org.cometd.bayeux.server.ServerMessage.Mutable message)
-
connected
protected boolean connected()
-
disconnect
public void disconnect()
- Specified by:
disconnect
in interfaceorg.cometd.bayeux.Session
-
startBatch
public void startBatch()
- Specified by:
startBatch
in interfaceorg.cometd.bayeux.Session
-
endBatch
public boolean endBatch()
- Specified by:
endBatch
in interfaceorg.cometd.bayeux.Session
-
getLocalSession
public org.cometd.bayeux.server.LocalSession getLocalSession()
- Specified by:
getLocalSession
in interfaceorg.cometd.bayeux.server.ServerSession
-
isLocalSession
public boolean isLocalSession()
- Specified by:
isLocalSession
in interfaceorg.cometd.bayeux.server.ServerSession
-
addListener
public void addListener(org.cometd.bayeux.server.ServerSession.ServerSessionListener listener)
- Specified by:
addListener
in interfaceorg.cometd.bayeux.server.ServerSession
-
getId
public java.lang.String getId()
- Specified by:
getId
in interfaceorg.cometd.bayeux.Session
-
getLock
public java.lang.Object getLock()
-
getQueue
public java.util.Queue<org.cometd.bayeux.server.ServerMessage> getQueue()
-
hasNonLazyMessages
public boolean hasNonLazyMessages()
-
addMessage
protected void addMessage(org.cometd.bayeux.server.ServerMessage message)
-
takeQueue
public java.util.List<org.cometd.bayeux.server.ServerMessage> takeQueue()
-
notifySuspended
public void notifySuspended(org.cometd.bayeux.server.ServerMessage message, long timeout)
-
notifyResumed
public void notifyResumed(org.cometd.bayeux.server.ServerMessage message, boolean timeout)
-
removeListener
public void removeListener(org.cometd.bayeux.server.ServerSession.ServerSessionListener listener)
- Specified by:
removeListener
in interfaceorg.cometd.bayeux.server.ServerSession
-
getListeners
public java.util.List<org.cometd.bayeux.server.ServerSession.ServerSessionListener> getListeners()
-
setScheduler
public void setScheduler(AbstractServerTransport.Scheduler newScheduler)
-
shouldSchedule
public boolean shouldSchedule()
-
flush
public void flush()
-
cancelSchedule
public void cancelSchedule()
-
cancelExpiration
public void cancelExpiration(boolean metaConnect)
-
scheduleExpiration
public void scheduleExpiration(long defaultInterval)
-
getMaxInterval
protected long getMaxInterval()
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name)
- Specified by:
getAttribute
in interfaceorg.cometd.bayeux.Session
-
getAttributeNames
public java.util.Set<java.lang.String> getAttributeNames()
- Specified by:
getAttributeNames
in interfaceorg.cometd.bayeux.Session
-
removeAttribute
public java.lang.Object removeAttribute(java.lang.String name)
- Specified by:
removeAttribute
in interfaceorg.cometd.bayeux.Session
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.Object value)
- Specified by:
setAttribute
in interfaceorg.cometd.bayeux.Session
-
isHandshook
public boolean isHandshook()
- Specified by:
isHandshook
in interfaceorg.cometd.bayeux.Session
-
isConnected
public boolean isConnected()
- Specified by:
isConnected
in interfaceorg.cometd.bayeux.Session
-
isDisconnected
public boolean isDisconnected()
-
isTerminated
public boolean isTerminated()
-
extendIncoming
protected void extendIncoming(org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
-
reAdvise
public void reAdvise()
-
takeAdvice
public java.util.Map<java.lang.String,java.lang.Object> takeAdvice(org.cometd.bayeux.server.ServerTransport transport)
-
getServerTransport
public org.cometd.bayeux.server.ServerTransport getServerTransport()
- Specified by:
getServerTransport
in interfaceorg.cometd.bayeux.server.ServerSession
-
setServerTransport
public void setServerTransport(org.cometd.bayeux.server.ServerTransport transport)
-
getTimeout
public long getTimeout()
- Specified by:
getTimeout
in interfaceorg.cometd.bayeux.server.ServerSession
-
getInterval
public long getInterval()
- Specified by:
getInterval
in interfaceorg.cometd.bayeux.server.ServerSession
-
setTimeout
public void setTimeout(long timeoutMS)
- Specified by:
setTimeout
in interfaceorg.cometd.bayeux.server.ServerSession
-
setInterval
public void setInterval(long intervalMS)
- Specified by:
setInterval
in interfaceorg.cometd.bayeux.server.ServerSession
-
isBroadcastToPublisher
public boolean isBroadcastToPublisher()
-
setBroadcastToPublisher
public void setBroadcastToPublisher(boolean value)
-
added
protected void added()
-
removed
protected boolean removed(boolean timedOut)
- Parameters:
timedOut
- whether the session has been timed out- Returns:
- True if the session was connected.
-
setMetaConnectDeliveryOnly
public void setMetaConnectDeliveryOnly(boolean meta)
-
isMetaConnectDeliveryOnly
public boolean isMetaConnectDeliveryOnly()
-
isAllowMessageDeliveryDuringHandshake
public boolean isAllowMessageDeliveryDuringHandshake()
-
setAllowMessageDeliveryDuringHandshake
public void setAllowMessageDeliveryDuringHandshake(boolean allow)
-
subscribe
protected boolean subscribe(ServerChannelImpl channel)
-
unsubscribedFrom
protected void unsubscribedFrom(ServerChannelImpl channel)
-
calculateTimeout
public long calculateTimeout(long defaultTimeout)
-
calculateInterval
public long calculateInterval(long defaultInterval)
-
updateTransientTimeout
public void updateTransientTimeout(long timeout)
Updates the transient timeout with the given value. The transient timeout is the one sent by the client, that should temporarily override the session/transport timeout, for example when the client sends {timeout:0}- Parameters:
timeout
- the value to update the timeout to- See Also:
updateTransientInterval(long)
-
updateTransientInterval
public void updateTransientInterval(long interval)
Updates the transient interval with the given value. The transient interval is the one sent by the client, that should temporarily override the session/transport interval, for example when the client sends {timeout:0,interval:60000}- Parameters:
interval
- the value to update the interval to- See Also:
updateTransientTimeout(long)
-
dump
public java.lang.String dump()
- Specified by:
dump
in interfaceorg.eclipse.jetty.util.component.Dumpable
-
dump
public void dump(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException
- Specified by:
dump
in interfaceorg.eclipse.jetty.util.component.Dumpable
- Throws:
java.io.IOException
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-