Package org.cometd.server.http
Class AbstractHttpTransport
java.lang.Object
org.cometd.common.AbstractTransport
org.cometd.server.AbstractServerTransport
org.cometd.server.http.AbstractHttpTransport
- All Implemented Interfaces:
ServerTransport,org.cometd.bayeux.Transport,org.eclipse.jetty.util.component.Dumpable
- Direct Known Subclasses:
AbstractStreamHttpTransport,AsyncJSONTransport
HTTP ServerTransport base class, used by ServerTransports that use HTTP as transport or to initiate a transport connection.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic interfaceAAbstractServerTransport.Schedulerfor HTTP-based transports.protected classNested classes/interfaces inherited from class org.cometd.server.AbstractServerTransport
AbstractServerTransport.SchedulerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class org.cometd.server.AbstractServerTransport
ALLOW_MESSAGE_DELIVERY_DURING_HANDSHAKE, HANDSHAKE_RECONNECT_OPTION, INTERVAL_OPTION, JSON_CONTEXT_OPTION, MAX_INTERVAL_OPTION, MAX_LAZY_TIMEOUT_OPTION, MAX_MESSAGE_SIZE_OPTION, MAX_PROCESSING_OPTION, MAX_QUEUE_OPTION, META_CONNECT_DELIVERY_OPTION, TIMEOUT_OPTIONFields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractHttpTransport(BayeuxServerImpl bayeux, String name) -
Method Summary
Modifier and TypeMethodDescriptionabstract booleanaccept(jakarta.servlet.http.HttpServletRequest request) protected voiddecBrowserId(ServerSessionImpl session, boolean http2) protected Stringprotected Collection<ServerSessionImpl>findCurrentSessions(jakarta.servlet.http.HttpServletRequest request) protected ServerSessionImplfindSession(Collection<ServerSessionImpl> sessions, ServerMessage.Mutable message) protected voidflush(AbstractHttpTransport.Context context, org.cometd.bayeux.Promise<Void> promise) protected jakarta.servlet.AsyncContextgetAsyncContext(jakarta.servlet.http.HttpServletRequest request) protected intprotected longabstract voidhandle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) protected voidhandleJSONParseException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, String json, Throwable failure) protected voidhandleMessage(AbstractHttpTransport.Context context, ServerMessage.Mutable message, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise) protected booleanincBrowserId(ServerSessionImpl session, boolean http2) Increments the count of sessions for the given browser identifier.voidinit()Initializes the transport, resolving default and direct options.protected booleanisHTTP2(jakarta.servlet.http.HttpServletRequest request) protected voidprocessMessages(AbstractHttpTransport.Context context, List<ServerMessage.Mutable> messages, org.cometd.bayeux.Promise<Void> promise) protected voidresume(AbstractHttpTransport.Context context, ServerMessage.Mutable message, org.cometd.bayeux.Promise<Void> promise) protected voidsendError(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, int code, Throwable failure) protected Stringprotected abstract AbstractHttpTransport.HttpSchedulersuspend(AbstractHttpTransport.Context context, org.cometd.bayeux.Promise<Void> promise, ServerMessage.Mutable message, long timeout) protected voidsweep()Sweeps the transport for old Browser IDsprotected byte[]toJSONBytes(ServerMessage msg) protected abstract voidwrite(AbstractHttpTransport.Context context, List<ServerMessage> messages, org.cometd.bayeux.Promise<Void> promise) Methods inherited from class org.cometd.server.AbstractServerTransport
allowMessageDeliveryDuringHandshake, destroy, dump, getBayeux, getInterval, getJSONContextServer, getMaxInterval, getMaxLazyTimeout, getMaxMessageSize, getTimeout, isAllowMessageDeliveryDuringHandshake, isHandshakeReconnect, isMetaConnectDeliveryOnly, newMetaConnectCycle, parseMessages, parseMessages, processReply, scheduleExpiration, setAllowMessageDeliveryDuringHandshake, setHandshakeReconnect, setInterval, setMaxInterval, setMaxLazyTimeout, setMaxMessageSize, setMetaConnectDeliveryOnly, setTimeout, toJSON, toStringMethods inherited from class org.cometd.common.AbstractTransport
getName, getOption, getOption, getOption, getOption, getOption, getOptionNames, getOptionPrefix, setOption, setOptionPrefixMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dump, dumpSelfMethods inherited from interface org.cometd.bayeux.Transport
getName, getOption, getOptionNames, getOptionPrefix
-
Field Details
-
PREFIX
- See Also:
-
JSON_DEBUG_OPTION
- See Also:
-
MESSAGE_PARAM
- See Also:
-
BROWSER_COOKIE_NAME_OPTION
- See Also:
-
BROWSER_COOKIE_DOMAIN_OPTION
- See Also:
-
BROWSER_COOKIE_PATH_OPTION
- See Also:
-
BROWSER_COOKIE_SECURE_OPTION
- See Also:
-
BROWSER_COOKIE_HTTP_ONLY_OPTION
- See Also:
-
BROWSER_COOKIE_SAME_SITE_OPTION
- See Also:
-
MAX_SESSIONS_PER_BROWSER_OPTION
- See Also:
-
HTTP2_MAX_SESSIONS_PER_BROWSER_OPTION
- See Also:
-
MULTI_SESSION_INTERVAL_OPTION
- See Also:
-
TRUST_CLIENT_SESSION_OPTION
- See Also:
-
DUPLICATE_META_CONNECT_HTTP_RESPONSE_CODE_OPTION
- See Also:
-
-
Constructor Details
-
AbstractHttpTransport
-
-
Method Details
-
init
public void init()Description copied from class:AbstractServerTransportInitializes the transport, resolving default and direct options.- Overrides:
initin classAbstractServerTransport
-
getMultiSessionInterval
protected long getMultiSessionInterval() -
getDuplicateMetaConnectHttpResponseCode
protected int getDuplicateMetaConnectHttpResponseCode() -
accept
public abstract boolean accept(jakarta.servlet.http.HttpServletRequest request) -
handle
public abstract void handle(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws IOException, jakarta.servlet.ServletException - Throws:
IOExceptionjakarta.servlet.ServletException
-
suspend
protected abstract AbstractHttpTransport.HttpScheduler suspend(AbstractHttpTransport.Context context, org.cometd.bayeux.Promise<Void> promise, ServerMessage.Mutable message, long timeout) -
write
protected abstract void write(AbstractHttpTransport.Context context, List<ServerMessage> messages, org.cometd.bayeux.Promise<Void> promise) -
processMessages
protected void processMessages(AbstractHttpTransport.Context context, List<ServerMessage.Mutable> messages, org.cometd.bayeux.Promise<Void> promise) -
findSession
protected ServerSessionImpl findSession(Collection<ServerSessionImpl> sessions, ServerMessage.Mutable message) -
findCurrentSessions
protected Collection<ServerSessionImpl> findCurrentSessions(jakarta.servlet.http.HttpServletRequest request) -
isHTTP2
protected boolean isHTTP2(jakarta.servlet.http.HttpServletRequest request) -
flush
protected void flush(AbstractHttpTransport.Context context, org.cometd.bayeux.Promise<Void> promise) -
resume
protected void resume(AbstractHttpTransport.Context context, ServerMessage.Mutable message, org.cometd.bayeux.Promise<Void> promise) -
sendError
protected void sendError(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, int code, Throwable failure) -
findBrowserId
-
setBrowserId
-
incBrowserId
Increments the count of sessions for the given browser identifier.- Parameters:
session- the session that increments the counthttp2- 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
-
handleJSONParseException
protected void handleJSONParseException(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, String json, Throwable failure) throws IOException - Throws:
IOException
-
handleMessage
protected void handleMessage(AbstractHttpTransport.Context context, ServerMessage.Mutable message, org.cometd.bayeux.Promise<ServerMessage.Mutable> promise) -
getAsyncContext
protected jakarta.servlet.AsyncContext getAsyncContext(jakarta.servlet.http.HttpServletRequest request) -
sweep
protected void sweep()Sweeps the transport for old Browser IDs- Overrides:
sweepin classAbstractServerTransport
-
toJSONBytes
-