Class ServerSessionImpl

java.lang.Object
org.cometd.server.ServerSessionImpl
All Implemented Interfaces:
ServerSession, org.cometd.bayeux.Session, org.eclipse.jetty.util.component.Dumpable

public class ServerSessionImpl
extends java.lang.Object
implements ServerSession, org.eclipse.jetty.util.component.Dumpable
  • Constructor Details

  • Method Details

    • getBayeuxServer

      public BayeuxServerImpl getBayeuxServer()
    • getUserAgent

      public java.lang.String getUserAgent()
      Specified by:
      getUserAgent in interface 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<ServerChannel> getSubscriptions()
      Specified by:
      getSubscriptions in interface ServerSession
    • addExtension

      public void addExtension​(ServerSession.Extension extension)
      Specified by:
      addExtension in interface ServerSession
    • removeExtension

      public void removeExtension​(ServerSession.Extension extension)
      Specified by:
      removeExtension in interface ServerSession
    • getExtensions

      public java.util.List<ServerSession.Extension> getExtensions()
      Specified by:
      getExtensions in interface ServerSession
    • batch

      public void batch​(java.lang.Runnable batch)
      Specified by:
      batch in interface org.cometd.bayeux.Session
    • deliver

      public void deliver​(org.cometd.bayeux.Session sender, ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
      Specified by:
      deliver in interface 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 interface ServerSession
    • deliver1

      protected void deliver1​(ServerSession sender, ServerMessage.Mutable mutable, org.cometd.bayeux.Promise<java.lang.Boolean> promise)
    • extendOutgoing

      protected void extendOutgoing​(ServerSession sender, ServerMessage.Mutable message, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise)
    • handshake

      protected boolean handshake​(ServerMessage.Mutable message)
    • connected

      protected boolean connected()
    • disconnect

      public void disconnect()
      Specified by:
      disconnect in interface org.cometd.bayeux.Session
    • startBatch

      public void startBatch()
      Specified by:
      startBatch in interface org.cometd.bayeux.Session
    • endBatch

      public boolean endBatch()
      Specified by:
      endBatch in interface org.cometd.bayeux.Session
    • getLocalSession

      public LocalSession getLocalSession()
      Specified by:
      getLocalSession in interface ServerSession
    • isLocalSession

      public boolean isLocalSession()
      Specified by:
      isLocalSession in interface ServerSession
    • addListener

      public void addListener​(ServerSession.ServerSessionListener listener)
      Specified by:
      addListener in interface ServerSession
    • getId

      public java.lang.String getId()
      Specified by:
      getId in interface org.cometd.bayeux.Session
    • getLock

      public java.util.concurrent.locks.Lock getLock()
    • getQueue

      public java.util.Queue<ServerMessage> getQueue()
    • hasNonLazyMessages

      public boolean hasNonLazyMessages()
    • addMessage

      protected void addMessage​(ServerMessage message)
    • takeQueue

      public java.util.List<ServerMessage> takeQueue​(java.util.List<ServerMessage.Mutable> replies)
    • notifySuspended

      public void notifySuspended​(ServerMessage message, long timeout)
    • notifyResumed

      public void notifyResumed​(ServerMessage message, boolean timeout)
    • removeListener

      public void removeListener​(ServerSession.ServerSessionListener listener)
      Specified by:
      removeListener in interface ServerSession
    • getListeners

      public java.util.List<ServerSession.ServerSessionListener> getListeners()
    • setScheduler

      public void setScheduler​(AbstractServerTransport.Scheduler newScheduler)
    • shouldSchedule

      public boolean shouldSchedule()
    • flush

      public void flush()
    • destroyScheduler

      public void destroyScheduler()
    • cancelExpiration

      public void cancelExpiration​(boolean metaConnect)
    • scheduleExpiration

      public void scheduleExpiration​(long defaultInterval, long defaultMaxInterval, long metaConnectCycle)
    • getMaxInterval

      public long getMaxInterval()
      Specified by:
      getMaxInterval in interface ServerSession
    • setMaxInterval

      public void setMaxInterval​(long maxInterval)
      Specified by:
      setMaxInterval in interface ServerSession
    • getAttribute

      public java.lang.Object getAttribute​(java.lang.String name)
      Specified by:
      getAttribute in interface org.cometd.bayeux.Session
    • getAttributeNames

      public java.util.Set<java.lang.String> getAttributeNames()
      Specified by:
      getAttributeNames in interface org.cometd.bayeux.Session
    • removeAttribute

      public java.lang.Object removeAttribute​(java.lang.String name)
      Specified by:
      removeAttribute in interface org.cometd.bayeux.Session
    • setAttribute

      public void setAttribute​(java.lang.String name, java.lang.Object value)
      Specified by:
      setAttribute in interface org.cometd.bayeux.Session
    • isHandshook

      public boolean isHandshook()
      Specified by:
      isHandshook in interface org.cometd.bayeux.Session
    • isConnected

      public boolean isConnected()
      Specified by:
      isConnected in interface org.cometd.bayeux.Session
    • isDisconnected

      public boolean isDisconnected()
    • isTerminated

      public boolean isTerminated()
    • extendIncoming

      protected void extendIncoming​(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​(ServerTransport transport)
    • getServerTransport

      public ServerTransport getServerTransport()
      Specified by:
      getServerTransport in interface ServerSession
    • setServerTransport

      public void setServerTransport​(ServerTransport transport)
    • getTimeout

      public long getTimeout()
      Specified by:
      getTimeout in interface ServerSession
    • getInterval

      public long getInterval()
      Specified by:
      getInterval in interface ServerSession
    • setTimeout

      public void setTimeout​(long timeoutMS)
      Specified by:
      setTimeout in interface ServerSession
    • setInterval

      public void setInterval​(long intervalMS)
      Specified by:
      setInterval in interface ServerSession
    • isBroadcastToPublisher

      public boolean isBroadcastToPublisher()
      Specified by:
      isBroadcastToPublisher in interface ServerSession
    • setBroadcastToPublisher

      public void setBroadcastToPublisher​(boolean value)
      Specified by:
      setBroadcastToPublisher in interface ServerSession
    • removed

      protected boolean removed​(ServerMessage message, boolean timeout)
      Parameters:
      message - the message that caused the removal, or null
      timeout - whether the session has been removed due a timeout
      Returns:
      True if the session was connected.
    • setMetaConnectDeliveryOnly

      public void setMetaConnectDeliveryOnly​(boolean meta)
      Specified by:
      setMetaConnectDeliveryOnly in interface ServerSession
    • isMetaConnectDeliveryOnly

      public boolean isMetaConnectDeliveryOnly()
      Specified by:
      isMetaConnectDeliveryOnly in interface ServerSession
    • 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 void dump​(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException
      Specified by:
      dump in interface org.eclipse.jetty.util.component.Dumpable
      Throws:
      java.io.IOException
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object