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 Object implements ServerSession, org.eclipse.jetty.util.component.Dumpable
  • Constructor Details

  • Method Details

    • getBayeuxServer

      public BayeuxServerImpl getBayeuxServer()
    • getUserAgent

      public String getUserAgent()
      Specified by:
      getUserAgent in interface ServerSession
      Returns:
      the remote user agent
    • setUserAgent

      public void setUserAgent(String userAgent)
      Parameters:
      userAgent - the remote user agent
    • getBrowserId

      public String getBrowserId()
      Returns:
      the remote client identifier
    • setBrowserId

      public void setBrowserId(String browserId)

      Sets a remote client identifier, typically a browser.

      Parameters:
      browserId - the remote client identifier
    • sweep

      protected void sweep(long now)
    • getSubscriptions

      public 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 List<ServerSession.Extension> getExtensions()
      Specified by:
      getExtensions in interface ServerSession
    • batch

      public void batch(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<Boolean> promise)
      Specified by:
      deliver in interface ServerSession
    • deliver

      public void deliver(org.cometd.bayeux.Session sender, String channelId, Object data, org.cometd.bayeux.Promise<Boolean> promise)
      Specified by:
      deliver in interface ServerSession
    • deliver1

      protected void deliver1(ServerSession sender, ServerMessage.Mutable mutable, org.cometd.bayeux.Promise<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 String getId()
      Specified by:
      getId in interface org.cometd.bayeux.Session
    • getLock

      public Object getLock()
    • getQueue

      public Queue<ServerMessage> getQueue()
    • hasNonLazyMessages

      public boolean hasNonLazyMessages()
    • addMessage

      protected void addMessage(ServerMessage message)
    • takeQueue

      public List<ServerMessage> takeQueue(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 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 Object getAttribute(String name)
      Specified by:
      getAttribute in interface org.cometd.bayeux.Session
    • getAttributeNames

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

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

      public void setAttribute(String name, 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<Boolean> promise)
    • reAdvise

      public void reAdvise()
    • takeAdvice

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

      public String toString()
      Overrides:
      toString in class Object