Class AbstractHttpTransport

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

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

    • init

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

      protected long getMultiSessionInterval()
    • setCurrentRequest

      public void setCurrentRequest​(javax.servlet.http.HttpServletRequest request)
    • getCurrentRequest

      public javax.servlet.http.HttpServletRequest getCurrentRequest()
    • accept

      public abstract boolean accept​(javax.servlet.http.HttpServletRequest request)
    • handle

      public abstract void handle​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
      Throws:
      java.io.IOException
      javax.servlet.ServletException
    • suspend

      protected abstract AbstractHttpTransport.HttpScheduler suspend​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ServerSessionImpl session, org.cometd.bayeux.server.ServerMessage.Mutable reply, long timeout)
    • write

      protected abstract void write​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ServerSessionImpl session, boolean scheduleExpiration, java.util.List<org.cometd.bayeux.server.ServerMessage> messages, org.cometd.bayeux.server.ServerMessage.Mutable[] replies)
    • processMessages

      protected void processMessages​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, org.cometd.bayeux.server.ServerMessage.Mutable[] messages) throws java.io.IOException
      Throws:
      java.io.IOException
    • findSession

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

      protected java.util.Collection<ServerSessionImpl> findCurrentSessions​(javax.servlet.http.HttpServletRequest request)
    • processMetaHandshake

      protected org.cometd.bayeux.server.ServerMessage.Mutable processMetaHandshake​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ServerSessionImpl session, org.cometd.bayeux.server.ServerMessage.Mutable message)
    • processMetaConnect

      protected org.cometd.bayeux.server.ServerMessage.Mutable processMetaConnect​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ServerSessionImpl session, org.cometd.bayeux.server.ServerMessage.Mutable message, boolean canSuspend)
    • isHTTP2

      protected boolean isHTTP2​(javax.servlet.http.HttpServletRequest request)
    • flush

      protected void flush​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ServerSessionImpl session, boolean sendQueue, boolean scheduleExpiration, org.cometd.bayeux.server.ServerMessage.Mutable... replies)
    • resume

      protected void resume​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.AsyncContext asyncContext, ServerSessionImpl session, org.cometd.bayeux.server.ServerMessage.Mutable reply)
    • getContext

      public org.cometd.bayeux.server.BayeuxContext getContext()
    • findBrowserId

      protected java.lang.String findBrowserId​(javax.servlet.http.HttpServletRequest request)
    • setBrowserId

      protected java.lang.String setBrowserId​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
    • incBrowserId

      protected 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(ServerSessionImpl, boolean)
    • decBrowserId

      protected void decBrowserId​(ServerSessionImpl session, boolean http2)
    • handleJSONParseException

      protected void handleJSONParseException​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String json, java.lang.Throwable exception) throws java.io.IOException
      Throws:
      java.io.IOException
    • getAsyncContext

      protected javax.servlet.AsyncContext getAsyncContext​(javax.servlet.http.HttpServletRequest request)
    • error

      protected void error​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.AsyncContext asyncContext, int responseCode)
    • bayeuxServerHandle

      protected org.cometd.bayeux.server.ServerMessage.Mutable bayeuxServerHandle​(ServerSessionImpl session, org.cometd.bayeux.server.ServerMessage.Mutable message)
    • metaConnectSuspended

      protected void metaConnectSuspended​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.AsyncContext asyncContext, org.cometd.bayeux.server.ServerSession session)
    • metaConnectResumed

      protected void metaConnectResumed​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.AsyncContext asyncContext, org.cometd.bayeux.server.ServerSession session)
    • sweep

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