org.mortbay.cometd
Class AbstractBayeux
java.lang.Object
org.mortbay.cometd.MessagePool
org.mortbay.cometd.AbstractBayeux
- All Implemented Interfaces:
- org.cometd.Bayeux
- Direct Known Subclasses:
- ContinuationBayeux
public abstract class AbstractBayeux
- extends MessagePool
- implements org.cometd.Bayeux
- Author:
- gregw, aabeling: added JSONP transport
Fields inherited from interface org.cometd.Bayeux |
ADVICE_FIELD, CHANNEL_FIELD, CLIENT_FIELD, CONNECTION_TYPE_FIELD, DATA_FIELD, DOJOX_COMETD_BAYEUX, ERROR_FIELD, EXT_FIELD, HANDSHAKE_RESPONSE, ID_FIELD, INTERVAL_FIELD, JSON_COMMENT_FILTERED_FIELD, JSON_CONTENT_TYPE, JSONP_DEFAULT_NAME, JSONP_PARAMETER, MESSAGE_PARAMETER, META, META_CLIENT, META_CONNECT, META_DISCONNECT, META_HANDSHAKE, META_PING, META_SLASH, META_STATUS, META_SUBSCRIBE, META_UNSUBSCRIBE, MIN_VERSION_FIELD, NONE_RESPONSE, RECONNECT_FIELD, RETRY_RESPONSE, SERVICE, SERVICE_SLASH, SUBSCRIPTION_FIELD, SUCCESSFUL_FIELD, SUPP_CONNECTION_TYPE_FIELD, TIMESTAMP_FIELD, TRANSPORT_CALLBACK_POLL, TRANSPORT_FIELD, TRANSPORT_FLASH, TRANSPORT_IFRAME, TRANSPORT_LONG_POLL, VERSION_FIELD |
Method Summary |
void |
addChannel(ChannelImpl channel)
|
protected void |
addClient(ClientImpl client,
java.lang.String idPrefix)
|
void |
addExtension(org.cometd.Extension ext)
|
void |
addListener(org.cometd.BayeuxListener listener)
|
protected void |
doPublish(ChannelId to,
org.cometd.Client from,
java.lang.Object data,
java.lang.String msgId)
Publish data to a channel. |
JSON.Literal |
getAdvice()
|
ChannelImpl |
getChannel(ChannelId id)
|
ChannelImpl |
getChannel(java.lang.String id)
|
org.cometd.Channel |
getChannel(java.lang.String id,
boolean create)
|
int |
getChannelCount()
|
ChannelId |
getChannelId(java.lang.String id)
|
java.util.Collection<org.cometd.Channel> |
getChannels()
|
org.cometd.Client |
getClient(java.lang.String client_id)
|
int |
getClientCount()
|
java.util.Set<java.lang.String> |
getClientIDs()
|
java.util.Collection<org.cometd.Client> |
getClients()
|
HttpServletRequest |
getCurrentRequest()
|
java.util.List<org.cometd.Extension> |
getExtensions()
|
long |
getInterval()
|
int |
getLogLevel()
|
int |
getMaxClientQueue()
|
long |
getMaxInterval()
|
int |
getMultiFrameInterval()
|
org.cometd.SecurityPolicy |
getSecurityPolicy()
|
long |
getTimeout()
|
java.lang.String |
handle(ClientImpl client,
Transport transport,
org.cometd.Message message)
Handle a Bayeux message. |
boolean |
hasChannel(java.lang.String id)
|
boolean |
hasClient(java.lang.String clientId)
|
protected void |
initialize(ServletContext context)
|
boolean |
isDirectDeliver()
|
boolean |
isInitialized()
|
boolean |
isJSONCommented()
|
boolean |
isLogDebug()
|
boolean |
isLogInfo()
|
boolean |
isRequestAvailable()
|
void |
logDebug(java.lang.String message)
|
void |
logDebug(java.lang.String message,
java.lang.Throwable th)
|
void |
logInfo(java.lang.String message)
|
void |
logWarn(java.lang.String message)
|
void |
logWarn(java.lang.String message,
java.lang.Throwable th)
|
org.cometd.Client |
newClient(java.lang.String idPrefix)
|
protected java.lang.String |
newClientId(long variation,
java.lang.String idPrefix)
|
abstract ClientImpl |
newRemoteClient()
|
Transport |
newTransport(ClientImpl client,
java.util.Map<?,?> message)
Create new transport object for a bayeux message |
boolean |
removeChannel(ChannelImpl channel)
|
org.cometd.Channel |
removeChannel(java.lang.String channelId)
|
org.cometd.Client |
removeClient(java.lang.String client_id)
|
void |
removeExtension(org.cometd.Extension ext)
|
void |
setAdvice(JSON.Literal advice)
|
void |
setDirectDeliver(boolean directDeliver)
|
void |
setInterval(long ms)
|
void |
setJSONCommented(boolean commented)
|
void |
setLogLevel(int logLevel)
|
void |
setMaxClientQueue(int size)
|
void |
setMaxInterval(long ms)
|
void |
setMultiFrameInterval(int multiFrameInterval)
The time a client should delay between reconnects when multiple
connections from the same browser are detected. |
void |
setRequestAvailable(boolean requestAvailable)
|
void |
setSecurityPolicy(org.cometd.SecurityPolicy securityPolicy)
|
void |
setTimeout(long ms)
|
Methods inherited from class org.mortbay.cometd.MessagePool |
getBatchJSON, getJSON, getMsgJSON, newMessage, newMessage, parse, parse, parseTo, recycleMessage, setBatchJSON, setJSON, setMsgJSON |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
META_ID
public static final ChannelId META_ID
META_CONNECT_ID
public static final ChannelId META_CONNECT_ID
META_CLIENT_ID
public static final ChannelId META_CLIENT_ID
META_DISCONNECT_ID
public static final ChannelId META_DISCONNECT_ID
META_HANDSHAKE_ID
public static final ChannelId META_HANDSHAKE_ID
META_PING_ID
public static final ChannelId META_PING_ID
META_STATUS_ID
public static final ChannelId META_STATUS_ID
META_SUBSCRIBE_ID
public static final ChannelId META_SUBSCRIBE_ID
META_UNSUBSCRIBE_ID
public static final ChannelId META_UNSUBSCRIBE_ID
_securityPolicy
protected org.cometd.SecurityPolicy _securityPolicy
_advice
protected JSON.Literal _advice
_multiFrameAdvice
protected JSON.Literal _multiFrameAdvice
_adviceVersion
protected int _adviceVersion
_handshakeAdvice
protected java.lang.Object _handshakeAdvice
_logLevel
protected int _logLevel
_timeout
protected long _timeout
_interval
protected long _interval
_maxInterval
protected long _maxInterval
_JSONCommented
protected boolean _JSONCommented
_initialized
protected boolean _initialized
_browser2client
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.List<java.lang.String>> _browser2client
_multiFrameInterval
protected int _multiFrameInterval
_directDeliver
protected boolean _directDeliver
_requestAvailable
protected boolean _requestAvailable
_request
protected java.lang.ThreadLocal<HttpServletRequest> _request
_publishHandler
protected AbstractBayeux.Handler _publishHandler
_metaPublishHandler
protected AbstractBayeux.Handler _metaPublishHandler
_maxClientQueue
protected int _maxClientQueue
_extensions
protected java.util.List<org.cometd.Extension> _extensions
_transports
protected JSON.Literal _transports
_clientListeners
protected java.util.List<org.cometd.ClientBayeuxListener> _clientListeners
_channelListeners
protected java.util.List<org.cometd.ChannelBayeuxListener> _channelListeners
AbstractBayeux
protected AbstractBayeux()
- Parameters:
context.
- The logLevel init parameter is used to set the logging to
0=none, 1=info, 2=debug
addExtension
public void addExtension(org.cometd.Extension ext)
- Specified by:
addExtension
in interface org.cometd.Bayeux
getExtensions
public java.util.List<org.cometd.Extension> getExtensions()
removeExtension
public void removeExtension(org.cometd.Extension ext)
getChannel
public ChannelImpl getChannel(ChannelId id)
- Parameters:
id
-
- Returns:
getChannel
public ChannelImpl getChannel(java.lang.String id)
getChannel
public org.cometd.Channel getChannel(java.lang.String id,
boolean create)
- Specified by:
getChannel
in interface org.cometd.Bayeux
getChannelId
public ChannelId getChannelId(java.lang.String id)
getClient
public org.cometd.Client getClient(java.lang.String client_id)
- Specified by:
getClient
in interface org.cometd.Bayeux
getClientIDs
public java.util.Set<java.lang.String> getClientIDs()
getMaxInterval
public long getMaxInterval()
- Returns:
- The maximum time in ms to wait between polls before timing out a client
getLogLevel
public int getLogLevel()
- Returns:
- the logLevel. 0=none, 1=info, 2=debug
getSecurityPolicy
public org.cometd.SecurityPolicy getSecurityPolicy()
- Specified by:
getSecurityPolicy
in interface org.cometd.Bayeux
getTimeout
public long getTimeout()
getInterval
public long getInterval()
isDirectDeliver
public boolean isDirectDeliver()
- Returns:
- true if published messages are directly delivered to subscribers. False if
a new message is to be created that holds only supported fields.
setDirectDeliver
public void setDirectDeliver(boolean directDeliver)
- Parameters:
directDeliver
- true if published messages are directly delivered to subscribers. False if
a new message is to be created that holds only supported fields.
handle
public java.lang.String handle(ClientImpl client,
Transport transport,
org.cometd.Message message)
throws java.io.IOException
- Handle a Bayeux message.
This is normally only called by the bayeux servlet or a test harness.
- Parameters:
client
- The client if knowntransport
- The transport to use for the messagemessage
- The bayeux message.
- Throws:
java.io.IOException
hasChannel
public boolean hasChannel(java.lang.String id)
- Specified by:
hasChannel
in interface org.cometd.Bayeux
isInitialized
public boolean isInitialized()
isJSONCommented
public boolean isJSONCommented()
- Returns:
- the commented
isLogDebug
public boolean isLogDebug()
isLogInfo
public boolean isLogInfo()
logDebug
public void logDebug(java.lang.String message)
logDebug
public void logDebug(java.lang.String message,
java.lang.Throwable th)
logWarn
public void logWarn(java.lang.String message,
java.lang.Throwable th)
logWarn
public void logWarn(java.lang.String message)
logInfo
public void logInfo(java.lang.String message)
newClient
public org.cometd.Client newClient(java.lang.String idPrefix)
- Specified by:
newClient
in interface org.cometd.Bayeux
newRemoteClient
public abstract ClientImpl newRemoteClient()
newTransport
public Transport newTransport(ClientImpl client,
java.util.Map<?,?> message)
- Create new transport object for a bayeux message
- Parameters:
client
- The clientmessage
- the bayeux message
- Returns:
- the negotiated transport.
doPublish
protected void doPublish(ChannelId to,
org.cometd.Client from,
java.lang.Object data,
java.lang.String msgId)
- Publish data to a channel.
Creates a message and delivers it to the root channel.
- Parameters:
to
- from
- data
- msgId
-
removeChannel
public boolean removeChannel(ChannelImpl channel)
addChannel
public void addChannel(ChannelImpl channel)
newClientId
protected java.lang.String newClientId(long variation,
java.lang.String idPrefix)
addClient
protected void addClient(ClientImpl client,
java.lang.String idPrefix)
removeClient
public org.cometd.Client removeClient(java.lang.String client_id)
- Specified by:
removeClient
in interface org.cometd.Bayeux
setMaxInterval
public void setMaxInterval(long ms)
- Parameters:
ms
- The maximum time in ms to wait between polls before timing out a client
setJSONCommented
public void setJSONCommented(boolean commented)
- Parameters:
commented
- the commented to set
setLogLevel
public void setLogLevel(int logLevel)
- Parameters:
logLevel
- the logLevel: 0=none, 1=info, 2=debug
setSecurityPolicy
public void setSecurityPolicy(org.cometd.SecurityPolicy securityPolicy)
- Specified by:
setSecurityPolicy
in interface org.cometd.Bayeux
setTimeout
public void setTimeout(long ms)
setInterval
public void setInterval(long ms)
setMultiFrameInterval
public void setMultiFrameInterval(int multiFrameInterval)
- The time a client should delay between reconnects when multiple
connections from the same browser are detected. This effectively
produces traditional polling.
- Parameters:
multiFrameInterval
- the multiFrameInterval to set
getMultiFrameInterval
public int getMultiFrameInterval()
- Returns:
- the multiFrameInterval in milliseconds
setAdvice
public void setAdvice(JSON.Literal advice)
getAdvice
public JSON.Literal getAdvice()
isRequestAvailable
public boolean isRequestAvailable()
- Returns:
- TRUE if
getCurrentRequest()
will return the current request
setRequestAvailable
public void setRequestAvailable(boolean requestAvailable)
- Parameters:
requestAvailable
- TRUE if getCurrentRequest()
will return the current request
getCurrentRequest
public HttpServletRequest getCurrentRequest()
- Specified by:
getCurrentRequest
in interface org.cometd.Bayeux
- Returns:
- the current request if
isRequestAvailable()
is true, else null
getChannels
public java.util.Collection<org.cometd.Channel> getChannels()
- Specified by:
getChannels
in interface org.cometd.Bayeux
getChannelCount
public int getChannelCount()
- Returns:
getClients
public java.util.Collection<org.cometd.Client> getClients()
- Specified by:
getClients
in interface org.cometd.Bayeux
getClientCount
public int getClientCount()
- Returns:
hasClient
public boolean hasClient(java.lang.String clientId)
- Specified by:
hasClient
in interface org.cometd.Bayeux
removeChannel
public org.cometd.Channel removeChannel(java.lang.String channelId)
- Specified by:
removeChannel
in interface org.cometd.Bayeux
initialize
protected void initialize(ServletContext context)
addListener
public void addListener(org.cometd.BayeuxListener listener)
- Specified by:
addListener
in interface org.cometd.Bayeux
getMaxClientQueue
public int getMaxClientQueue()
- Specified by:
getMaxClientQueue
in interface org.cometd.Bayeux
setMaxClientQueue
public void setMaxClientQueue(int size)
- Specified by:
setMaxClientQueue
in interface org.cometd.Bayeux
Copyright © 1995-2009 Mort Bay Consulting. All Rights Reserved.