Class AbstractServerTransport

java.lang.Object
org.cometd.common.AbstractTransport
org.cometd.server.AbstractServerTransport
All Implemented Interfaces:
org.cometd.bayeux.server.ServerTransport, org.cometd.bayeux.Transport, org.eclipse.jetty.util.component.Dumpable
Direct Known Subclasses:
AbstractHttpTransport

public abstract class AbstractServerTransport
extends org.cometd.common.AbstractTransport
implements org.cometd.bayeux.server.ServerTransport, org.eclipse.jetty.util.component.Dumpable

The base class of all server transports.

Each derived Transport class should declare all options that it supports by calling AbstractTransport.setOption(String, Object) for each option. Then during the call the init(), each transport should call the variants of AbstractTransport.getOption(String) to obtained the configured value for the option.

  • Field Details

  • Constructor Details

    • AbstractServerTransport

      protected AbstractServerTransport​(BayeuxServerImpl bayeux, java.lang.String name)

      The constructor is passed the BayeuxServerImpl instance for the transport. The BayeuxServerImpl.getOptions() map is populated with the default options known by this transport. The options are then inspected again when init() is called, to set the actual values used. The options are arranged into a naming hierarchy by derived classes adding prefix by calling add AbstractTransport.setOptionPrefix(String). Calls to AbstractTransport.getOption(String) will use the list of prefixes to search for the most specific option set.

      Parameters:
      bayeux - the BayeuxServer implementation
      name - the name of the transport
  • Method Details

    • getInterval

      public long getInterval()
      Specified by:
      getInterval in interface org.cometd.bayeux.server.ServerTransport
      Returns:
      the interval in milliseconds
    • getMaxInterval

      public long getMaxInterval()
      Specified by:
      getMaxInterval in interface org.cometd.bayeux.server.ServerTransport
      Returns:
      the maxInterval in milliseconds
    • getMaxLazyTimeout

      public long getMaxLazyTimeout()
      Specified by:
      getMaxLazyTimeout in interface org.cometd.bayeux.server.ServerTransport
      Returns:
      the max lazy timeout in milliseconds before flushing lazy messages
    • getTimeout

      public long getTimeout()
      Specified by:
      getTimeout in interface org.cometd.bayeux.server.ServerTransport
      Returns:
      the timeout in milliseconds
    • isMetaConnectDeliveryOnly

      public boolean isMetaConnectDeliveryOnly()
      Specified by:
      isMetaConnectDeliveryOnly in interface org.cometd.bayeux.server.ServerTransport
    • setMetaConnectDeliveryOnly

      public void setMetaConnectDeliveryOnly​(boolean meta)
    • isHandshakeReconnect

      public boolean isHandshakeReconnect()
    • setHandshakeReconnect

      public void setHandshakeReconnect​(boolean handshakeReconnect)
    • isAllowMessageDeliveryDuringHandshake

      public boolean isAllowMessageDeliveryDuringHandshake()
    • setAllowMessageDeliveryDuringHandshake

      public void setAllowMessageDeliveryDuringHandshake​(boolean allow)
    • getMaxMessageSize

      public int getMaxMessageSize()
    • setMaxMessageSize

      public void setMaxMessageSize​(int maxMessageSize)
    • init

      public void init()
      Initializes the transport, resolving default and direct options.
    • destroy

      public void destroy()
    • parseMessages

      protected org.cometd.bayeux.server.ServerMessage.Mutable[] parseMessages​(java.io.BufferedReader reader, boolean jsonDebug) throws java.text.ParseException, java.io.IOException
      Throws:
      java.text.ParseException
      java.io.IOException
    • parseMessages

      public org.cometd.bayeux.server.ServerMessage.Mutable[] parseMessages​(java.lang.String json) throws java.text.ParseException
      Throws:
      java.text.ParseException
    • getBayeux

      public BayeuxServerImpl getBayeux()
      Returns:
      the BayeuxServer object
    • setInterval

      public void setInterval​(long interval)
      Parameters:
      interval - the interval in milliseconds
    • setMaxInterval

      public void setMaxInterval​(long maxInterval)
      Parameters:
      maxInterval - the maxInterval in milliseconds
    • setTimeout

      public void setTimeout​(long timeout)
      Parameters:
      timeout - the timeout in milliseconds
    • setMaxLazyTimeout

      public void setMaxLazyTimeout​(long maxLazyTimeout)
      Parameters:
      maxLazyTimeout - the maxLazyTimeout in milliseconds
    • sweep

      protected void sweep()
      Housekeeping sweep, called a regular intervals
    • processReply

      public void processReply​(ServerSessionImpl session, org.cometd.bayeux.server.ServerMessage.Mutable reply, org.cometd.bayeux.Promise<org.cometd.bayeux.server.ServerMessage.Mutable> promise)
    • toJSON

      protected java.lang.String toJSON​(org.cometd.bayeux.server.ServerMessage msg)
    • allowMessageDeliveryDuringHandshake

      public boolean allowMessageDeliveryDuringHandshake​(ServerSessionImpl session)
    • scheduleExpiration

      public void scheduleExpiration​(ServerSessionImpl session)
    • 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