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.
Modifier and Type | Class | Description |
---|---|---|
protected static class |
AbstractHttpTransport.Context |
|
static interface |
AbstractHttpTransport.HttpScheduler |
|
protected class |
AbstractHttpTransport.LongPollScheduler |
AbstractServerTransport.Scheduler
Modifier and Type | Field | Description |
---|---|---|
static java.lang.String |
BROWSER_COOKIE_DOMAIN_OPTION |
|
static java.lang.String |
BROWSER_COOKIE_HTTP_ONLY_OPTION |
|
static java.lang.String |
BROWSER_COOKIE_NAME_OPTION |
|
static java.lang.String |
BROWSER_COOKIE_PATH_OPTION |
|
static java.lang.String |
BROWSER_COOKIE_SECURE_OPTION |
|
static java.lang.String |
HTTP2_MAX_SESSIONS_PER_BROWSER_OPTION |
|
static java.lang.String |
JSON_DEBUG_OPTION |
|
static java.lang.String |
MAX_SESSIONS_PER_BROWSER_OPTION |
|
static java.lang.String |
MESSAGE_PARAM |
|
static java.lang.String |
MULTI_SESSION_INTERVAL_OPTION |
|
static java.lang.String |
PREFIX |
|
static java.lang.String |
TRUST_CLIENT_SESSION |
_logger, 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_OPTION
Modifier | Constructor | Description |
---|---|---|
protected |
AbstractHttpTransport(BayeuxServerImpl bayeux,
java.lang.String name) |
Modifier and Type | Method | Description |
---|---|---|
abstract boolean |
accept(javax.servlet.http.HttpServletRequest request) |
|
protected void |
decBrowserId(ServerSessionImpl session,
boolean http2) |
|
protected java.lang.String |
findBrowserId(javax.servlet.http.HttpServletRequest request) |
|
protected java.util.Collection<ServerSessionImpl> |
findCurrentSessions(javax.servlet.http.HttpServletRequest request) |
|
protected ServerSessionImpl |
findSession(java.util.Collection<ServerSessionImpl> sessions,
org.cometd.bayeux.server.ServerMessage.Mutable message) |
|
protected void |
flush(AbstractHttpTransport.Context context,
org.cometd.bayeux.Promise<java.lang.Void> promise) |
|
protected long |
getMultiSessionInterval() |
|
abstract void |
handle(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
|
protected void |
handleJSONParseException(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
java.lang.String json,
java.lang.Throwable failure) |
|
protected void |
handleMessage(AbstractHttpTransport.Context context,
org.cometd.bayeux.server.ServerMessage.Mutable message,
org.cometd.bayeux.Promise<org.cometd.bayeux.server.ServerMessage.Mutable> promise) |
|
protected boolean |
incBrowserId(ServerSessionImpl session,
boolean http2) |
Increments the count of sessions for the given browser identifier.
|
void |
init() |
Initializes the transport, resolving default and direct options.
|
protected boolean |
isHTTP2(javax.servlet.http.HttpServletRequest request) |
|
protected void |
processMessages(AbstractHttpTransport.Context context,
org.cometd.bayeux.server.ServerMessage.Mutable[] messages,
org.cometd.bayeux.Promise<java.lang.Void> promise) |
|
protected void |
processMetaConnect(AbstractHttpTransport.Context context,
org.cometd.bayeux.server.ServerMessage.Mutable message,
boolean canSuspend,
org.cometd.bayeux.Promise<java.lang.Void> promise) |
|
protected void |
processMetaHandshake(AbstractHttpTransport.Context context,
org.cometd.bayeux.server.ServerMessage.Mutable message,
org.cometd.bayeux.Promise<java.lang.Void> promise) |
|
protected void |
resume(AbstractHttpTransport.Context context,
org.cometd.bayeux.server.ServerMessage.Mutable message,
org.cometd.bayeux.Promise<java.lang.Void> promise) |
|
protected void |
sendError(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
int code,
java.lang.Throwable failure) |
|
protected java.lang.String |
setBrowserId(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
|
protected abstract AbstractHttpTransport.HttpScheduler |
suspend(AbstractHttpTransport.Context context,
org.cometd.bayeux.Promise<java.lang.Void> promise,
org.cometd.bayeux.server.ServerMessage.Mutable message,
long timeout) |
|
protected void |
sweep() |
Sweeps the transport for old Browser IDs
|
protected abstract void |
write(AbstractHttpTransport.Context context,
java.util.List<org.cometd.bayeux.server.ServerMessage> messages,
org.cometd.bayeux.Promise<java.lang.Void> promise) |
allowMessageDeliveryDuringHandshake, destroy, dump, dump, getBayeux, getInterval, getMaxInterval, getMaxLazyTimeout, getMaxMessageSize, getTimeout, isAllowMessageDeliveryDuringHandshake, isHandshakeReconnect, isMetaConnectDeliveryOnly, parseMessages, parseMessages, processReply, setAllowMessageDeliveryDuringHandshake, setHandshakeReconnect, setInterval, setMaxInterval, setMaxLazyTimeout, setMaxMessageSize, setMetaConnectDeliveryOnly, setTimeout, toJSONBytes, toString
getName, getOption, getOption, getOption, getOption, getOption, getOptionNames, getOptionPrefix, setOption, setOptionPrefix
public static final java.lang.String PREFIX
public static final java.lang.String JSON_DEBUG_OPTION
public static final java.lang.String MESSAGE_PARAM
public static final java.lang.String BROWSER_COOKIE_NAME_OPTION
public static final java.lang.String BROWSER_COOKIE_DOMAIN_OPTION
public static final java.lang.String BROWSER_COOKIE_PATH_OPTION
public static final java.lang.String BROWSER_COOKIE_SECURE_OPTION
public static final java.lang.String BROWSER_COOKIE_HTTP_ONLY_OPTION
public static final java.lang.String MAX_SESSIONS_PER_BROWSER_OPTION
public static final java.lang.String HTTP2_MAX_SESSIONS_PER_BROWSER_OPTION
public static final java.lang.String MULTI_SESSION_INTERVAL_OPTION
public static final java.lang.String TRUST_CLIENT_SESSION
protected AbstractHttpTransport(BayeuxServerImpl bayeux, java.lang.String name)
public void init()
AbstractServerTransport
init
in class AbstractServerTransport
protected long getMultiSessionInterval()
public abstract boolean accept(javax.servlet.http.HttpServletRequest request)
public abstract void handle(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
java.io.IOException
javax.servlet.ServletException
protected abstract AbstractHttpTransport.HttpScheduler suspend(AbstractHttpTransport.Context context, org.cometd.bayeux.Promise<java.lang.Void> promise, org.cometd.bayeux.server.ServerMessage.Mutable message, long timeout)
protected abstract void write(AbstractHttpTransport.Context context, java.util.List<org.cometd.bayeux.server.ServerMessage> messages, org.cometd.bayeux.Promise<java.lang.Void> promise)
protected void processMessages(AbstractHttpTransport.Context context, org.cometd.bayeux.server.ServerMessage.Mutable[] messages, org.cometd.bayeux.Promise<java.lang.Void> promise)
protected ServerSessionImpl findSession(java.util.Collection<ServerSessionImpl> sessions, org.cometd.bayeux.server.ServerMessage.Mutable message)
protected java.util.Collection<ServerSessionImpl> findCurrentSessions(javax.servlet.http.HttpServletRequest request)
protected void processMetaHandshake(AbstractHttpTransport.Context context, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Void> promise)
protected void processMetaConnect(AbstractHttpTransport.Context context, org.cometd.bayeux.server.ServerMessage.Mutable message, boolean canSuspend, org.cometd.bayeux.Promise<java.lang.Void> promise)
protected boolean isHTTP2(javax.servlet.http.HttpServletRequest request)
protected void flush(AbstractHttpTransport.Context context, org.cometd.bayeux.Promise<java.lang.Void> promise)
protected void resume(AbstractHttpTransport.Context context, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<java.lang.Void> promise)
protected void sendError(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, int code, java.lang.Throwable failure)
protected java.lang.String findBrowserId(javax.servlet.http.HttpServletRequest request)
protected java.lang.String setBrowserId(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
protected boolean incBrowserId(ServerSessionImpl session, boolean http2)
session
- the session that increments the counthttp2
- whether the HTTP protocol is HTTP/2decBrowserId(ServerSessionImpl, boolean)
protected void decBrowserId(ServerSessionImpl session, boolean http2)
protected void handleJSONParseException(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String json, java.lang.Throwable failure) throws java.io.IOException
java.io.IOException
protected void handleMessage(AbstractHttpTransport.Context context, org.cometd.bayeux.server.ServerMessage.Mutable message, org.cometd.bayeux.Promise<org.cometd.bayeux.server.ServerMessage.Mutable> promise)
protected void sweep()
sweep
in class AbstractServerTransport
Copyright © 2008–2017 The CometD Project. All rights reserved.