Class AbstractHttpTransport

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

public abstract class AbstractHttpTransport extends AbstractServerTransport

HTTP ServerTransport base class, used by ServerTransports that use HTTP as transport or to initiate a transport connection.

  • Field Details

  • Constructor Details

  • Method Details

    • find

      public static AbstractHttpTransport find(org.cometd.bayeux.server.BayeuxServer bayeuxServer, CometDRequest request)
    • init

      public void init()
      Description copied from class: AbstractServerTransport
      Initializes the transport, resolving default and direct options.
      Overrides:
      init in class AbstractServerTransport
    • getBrowserCookieName

      protected String getBrowserCookieName()
    • getBrowserCookieDomain

      protected String getBrowserCookieDomain()
    • getBrowserCookiePath

      protected String getBrowserCookiePath()
    • getBrowserCookieMaxAge

      protected int getBrowserCookieMaxAge()
    • isBrowserCookieSecure

      protected boolean isBrowserCookieSecure()
    • isBrowserCookieHttpOnly

      protected boolean isBrowserCookieHttpOnly()
    • getBrowserCookieSameSite

      protected String getBrowserCookieSameSite()
    • isBrowserCookiePartitioned

      protected boolean isBrowserCookiePartitioned()
    • getMultiSessionInterval

      protected long getMultiSessionInterval()
    • getDuplicateMetaConnectHttpResponseCode

      protected int getDuplicateMetaConnectHttpResponseCode()
    • accept

      public abstract boolean accept(CometDRequest request)
    • handle

      public void handle(org.cometd.bayeux.server.BayeuxContext bayeuxContext, CometDRequest request, CometDResponse response, org.cometd.bayeux.Promise<Void> promise)
    • handle

      protected abstract void handle(TransportContext context)
    • suspend

      protected AbstractHttpTransport.HttpScheduler suspend(TransportContext context, org.cometd.bayeux.Promise<Void> promise, org.cometd.bayeux.server.ServerMessage.Mutable message, long timeout)
    • newHttpScheduler

      protected AbstractHttpTransport.HttpScheduler newHttpScheduler(TransportContext context, org.cometd.bayeux.Promise<Void> promise, org.cometd.bayeux.server.ServerMessage.Mutable reply, long timeout)
    • write

      protected void write(TransportContext context, List<org.cometd.bayeux.server.ServerMessage> messages)
    • processMessages

      protected void processMessages(TransportContext context, List<org.cometd.bayeux.server.ServerMessage.Mutable> messages)
    • findSession

      protected ServerSessionImpl findSession(Collection<ServerSessionImpl> sessions, org.cometd.bayeux.server.ServerMessage.Mutable message)
    • findCurrentSessions

      protected Collection<ServerSessionImpl> findCurrentSessions(CometDRequest request)
    • isHTTP2

      protected boolean isHTTP2(CometDRequest request)
    • flush

      protected void flush(TransportContext context)
    • resume

      protected void resume(TransportContext context, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<Void> promise)
    • findBrowserId

      protected String findBrowserId(TransportContext context)
    • setBrowserId

      protected String setBrowserId(TransportContext context)
    • newBrowserCookie

      protected void newBrowserCookie(StringBuilder builder, String name, String value, boolean secure)
    • incBrowserId

      public boolean incBrowserId(ServerSessionImpl session, boolean http2)
      Increments the count of sessions for the given browser identifier.
      Parameters:
      session - the session that increments the count
      http2 - whether the HTTP protocol is HTTP/2
      Returns:
      true if the count is below the max sessions per browser value. If false is returned, the count is not incremented.
      See Also:
    • decBrowserId

      public void decBrowserId(ServerSessionImpl session, boolean http2)
    • handleMessage

      protected void handleMessage(TransportContext context, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<org.cometd.bayeux.server.ServerMessage.Mutable> promise)
    • writePrepare

      protected void writePrepare(TransportContext context, org.cometd.bayeux.Promise<Void> promise)
    • writeBegin

      protected void writeBegin(CometDResponse.Output output, org.cometd.bayeux.Promise<Void> promise)
    • writeMessage

      protected void writeMessage(CometDResponse.Output output, org.cometd.bayeux.server.ServerMessage message, org.cometd.bayeux.Promise<Void> promise)
    • writeEnd

      protected void writeEnd(CometDResponse.Output output, org.cometd.bayeux.Promise<Void> promise)
    • writeComplete

      protected void writeComplete(TransportContext context, List<org.cometd.bayeux.server.ServerMessage> messages)
    • sweep

      protected void sweep()
      Sweeps the transport for old Browser IDs
      Overrides:
      sweep in class AbstractServerTransport
    • toJSONBytes

      protected byte[] toJSONBytes(org.cometd.bayeux.server.ServerMessage msg)