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) |
|
org.cometd.bayeux.server.BayeuxContext |
getContext() |
|
javax.servlet.http.HttpServletRequest |
getCurrentRequest() |
|
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) |
|
void |
setCurrentRequest(javax.servlet.http.HttpServletRequest request) |
|
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 void setCurrentRequest(javax.servlet.http.HttpServletRequest request)
public javax.servlet.http.HttpServletRequest getCurrentRequest()
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)
public org.cometd.bayeux.server.BayeuxContext getContext()
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.