|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.cometd.server.MessagePool
org.cometd.server.AbstractBayeux
public abstract class AbstractBayeux
Nested Class Summary | |
---|---|
protected class |
AbstractBayeux.ConnectHandler
|
static class |
AbstractBayeux.DefaultPolicy
|
protected class |
AbstractBayeux.DisconnectHandler
|
protected class |
AbstractBayeux.Handler
|
protected class |
AbstractBayeux.HandshakeHandler
|
protected class |
AbstractBayeux.MetaPublishHandler
|
protected class |
AbstractBayeux.PingHandler
|
protected class |
AbstractBayeux.PublishHandler
|
protected class |
AbstractBayeux.ServiceChannel
|
protected class |
AbstractBayeux.SubscribeHandler
|
protected class |
AbstractBayeux.UnsubscribeHandler
|
Field Summary | |
---|---|
protected JSON.Literal |
_advice
|
protected int |
_adviceVersion
|
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.List<java.lang.String>> |
_browser2client
|
protected java.util.concurrent.ConcurrentHashMap<java.lang.String,ChannelId> |
_channelIdCache
|
protected java.util.List<ChannelBayeuxListener> |
_channelListeners
|
protected java.util.List<ClientBayeuxListener> |
_clientListeners
|
protected Extension[] |
_extensions
|
protected java.lang.Object |
_handshakeAdvice
|
protected boolean |
_initialized
|
protected long |
_interval
|
protected int |
_logLevel
|
protected int |
_maxClientQueue
|
protected long |
_maxInterval
|
protected int |
_maxLazyLatency
|
protected AbstractBayeux.Handler |
_metaPublishHandler
|
protected JSON.Literal |
_multiFrameAdvice
|
protected int |
_multiFrameInterval
|
protected AbstractBayeux.Handler |
_publishHandler
|
protected java.util.Random |
_random
|
protected JSON.Literal |
_replyExt
|
protected java.lang.ThreadLocal<javax.servlet.http.HttpServletRequest> |
_request
|
protected boolean |
_requestAvailable
|
protected SecurityPolicy |
_securityPolicy
|
protected long |
_timeout
|
protected JSON.Literal |
_transports
|
static ChannelId |
META_CLIENT_ID
|
static ChannelId |
META_CONNECT_ID
|
static ChannelId |
META_DISCONNECT_ID
|
static ChannelId |
META_HANDSHAKE_ID
|
static ChannelId |
META_ID
|
static ChannelId |
META_PING_ID
|
static ChannelId |
META_STATUS_ID
|
static ChannelId |
META_SUBSCRIBE_ID
|
static ChannelId |
META_UNSUBSCRIBE_ID
|
Constructor Summary | |
---|---|
protected |
AbstractBayeux()
|
Method Summary | |
---|---|
protected void |
addChannel(ChannelImpl channel)
|
protected void |
addClient(ClientImpl client,
java.lang.String idPrefix)
|
void |
addExtension(Extension ext)
Adds a bayeux extension. |
void |
addListener(BayeuxListener listener)
Adds a bayeux listener, |
protected void |
doPublish(ChannelId to,
Client from,
java.lang.Object data,
java.lang.String msgId,
boolean lazy)
Publish data to a channel. |
protected Message |
extendRcv(ClientImpl from,
Message message)
|
protected Message |
extendRcvMeta(ClientImpl from,
Message message)
|
protected Message |
extendSendBayeux(Client from,
Message message)
|
Message |
extendSendClient(Client from,
ClientImpl to,
Message message)
|
Message |
extendSendMeta(ClientImpl from,
Message message)
|
JSON.Literal |
getAdvice()
|
ChannelImpl |
getChannel(ChannelId id)
|
ChannelImpl |
getChannel(java.lang.String id)
|
Channel |
getChannel(java.lang.String id,
boolean create)
Get a Channel instance by ID. |
int |
getChannelCount()
|
ChannelId |
getChannelId(java.lang.String id)
|
java.util.Collection<Channel> |
getChannels()
Get all known channels. |
Client |
getClient(java.lang.String client_id)
Get Client by ID. |
int |
getClientCount()
|
java.util.Set<java.lang.String> |
getClientIDs()
|
java.util.Collection<Client> |
getClients()
Get a collection of all Clients. |
javax.servlet.http.HttpServletRequest |
getCurrentRequest()
Get the current Servlet Request. |
long |
getInterval()
|
int |
getLogLevel()
|
int |
getMaxClientQueue()
|
long |
getMaxInterval()
|
int |
getMaxLazyLatency()
|
int |
getMultiFrameInterval()
|
SecurityPolicy |
getSecurityPolicy()
Get the SecurityPolicy instance. |
long |
getTimeout()
|
java.lang.String |
handle(ClientImpl client,
Transport transport,
Message message)
Handle a Bayeux message. |
boolean |
hasChannel(java.lang.String id)
Check if channel exists. |
boolean |
hasClient(java.lang.String clientId)
|
protected void |
initialize(javax.servlet.ServletContext context)
|
boolean |
isDirectDeliver()
|
boolean |
isInitialized()
|
boolean |
isJSONCommented()
Deprecated. |
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)
|
Client |
newClient(java.lang.String idPrefix)
Create a new server side Client. |
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)
|
Channel |
removeChannel(java.lang.String channelId)
|
Client |
removeClient(java.lang.String client_id)
|
void |
removeExtension(Extension ext)
Removes a bayeux extension. |
void |
removeListener(BayeuxListener listener)
Removes a bayeux listener |
void |
setAdvice(JSON.Literal advice)
|
void |
setDirectDeliver(boolean directDeliver)
Deprecated. |
void |
setInterval(long ms)
|
void |
setJSONCommented(boolean commented)
|
void |
setLogLevel(int logLevel)
|
void |
setMaxClientQueue(int size)
|
void |
setMaxInterval(long ms)
|
void |
setMaxLazyLatency(int 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(SecurityPolicy securityPolicy)
Set the security policy for the Bayeux instance. |
void |
setTimeout(long ms)
|
Methods inherited from class org.cometd.server.MessagePool |
---|
getBatchJSON, getJSON, getMsgJSON, newMessage, newMessage, parse, parse, parseTo, setBatchJSON, setJSON, setMsgJSON, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final ChannelId META_ID
public static final ChannelId META_CONNECT_ID
public static final ChannelId META_CLIENT_ID
public static final ChannelId META_DISCONNECT_ID
public static final ChannelId META_HANDSHAKE_ID
public static final ChannelId META_PING_ID
public static final ChannelId META_STATUS_ID
public static final ChannelId META_SUBSCRIBE_ID
public static final ChannelId META_UNSUBSCRIBE_ID
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,ChannelId> _channelIdCache
protected final java.util.concurrent.ConcurrentHashMap<java.lang.String,java.util.List<java.lang.String>> _browser2client
protected final java.lang.ThreadLocal<javax.servlet.http.HttpServletRequest> _request
protected final java.util.List<ClientBayeuxListener> _clientListeners
protected final java.util.List<ChannelBayeuxListener> _channelListeners
protected final AbstractBayeux.Handler _publishHandler
protected final AbstractBayeux.Handler _metaPublishHandler
protected SecurityPolicy _securityPolicy
protected JSON.Literal _advice
protected JSON.Literal _multiFrameAdvice
protected int _adviceVersion
protected java.lang.Object _handshakeAdvice
protected int _logLevel
protected long _timeout
protected long _interval
protected long _maxInterval
protected boolean _initialized
protected int _multiFrameInterval
protected boolean _requestAvailable
protected java.util.Random _random
protected int _maxClientQueue
protected Extension[] _extensions
protected JSON.Literal _transports
protected JSON.Literal _replyExt
protected int _maxLazyLatency
Constructor Detail |
---|
protected AbstractBayeux()
context
- The logLevel init parameter is used to set the logging to: 0=none, 1=info, 2=debugMethod Detail |
---|
public void addExtension(Extension ext)
Bayeux
addExtension
in interface Bayeux
ext
- the extension to addBayeux.removeExtension(Extension)
public void removeExtension(Extension ext)
Bayeux
removeExtension
in interface Bayeux
ext
- the extension to removeBayeux.addExtension(Extension)
public ChannelImpl getChannel(ChannelId id)
id
-
public ChannelImpl getChannel(java.lang.String id)
public Channel getChannel(java.lang.String id, boolean create)
Bayeux
getChannel
in interface Bayeux
id
- The Channel IDcreate
- If true, a channel will be created if it does not exist.
public ChannelId getChannelId(java.lang.String id)
public Client getClient(java.lang.String client_id)
Bayeux
Client
by ID.
getClient
in interface Bayeux
public java.util.Set<java.lang.String> getClientIDs()
public long getMaxInterval()
public int getLogLevel()
public SecurityPolicy getSecurityPolicy()
Bayeux
SecurityPolicy
instance.
getSecurityPolicy
in interface Bayeux
SecurityPolicy
instance.public long getTimeout()
public long getInterval()
public boolean isDirectDeliver()
public void setDirectDeliver(boolean directDeliver)
directDeliver
- true if published messages are directly delivered to
subscribers. False if a new message is to be created that
holds only supported fields.public java.lang.String handle(ClientImpl client, Transport transport, Message message) throws java.io.IOException
client
- The client if knowntransport
- The transport to use for the messagemessage
- The bayeux message.
java.io.IOException
public boolean hasChannel(java.lang.String id)
Bayeux
hasChannel
in interface Bayeux
public boolean isInitialized()
public boolean isJSONCommented()
public boolean isLogDebug()
public boolean isLogInfo()
public void logDebug(java.lang.String message)
public void logDebug(java.lang.String message, java.lang.Throwable th)
public void logWarn(java.lang.String message, java.lang.Throwable th)
public void logWarn(java.lang.String message)
public void logInfo(java.lang.String message)
public Client newClient(java.lang.String idPrefix)
Bayeux
newClient
in interface Bayeux
idPrefix
- An identifier to prefix to the client ID.
Client
instance with Client.isLocal()
returning true.public abstract ClientImpl newRemoteClient()
public Transport newTransport(ClientImpl client, java.util.Map<?,?> message)
client
- The clientmessage
- the bayeux message
protected void doPublish(ChannelId to, Client from, java.lang.Object data, java.lang.String msgId, boolean lazy)
to
- from
- data
- msgId
- public boolean removeChannel(ChannelImpl channel)
protected void addChannel(ChannelImpl channel)
protected java.lang.String newClientId(long variation, java.lang.String idPrefix)
protected void addClient(ClientImpl client, java.lang.String idPrefix)
public Client removeClient(java.lang.String client_id)
removeClient
in interface Bayeux
public void setMaxInterval(long ms)
ms
- The maximum time in ms to wait between polls before timing out
a clientpublic void setJSONCommented(boolean commented)
commented
- the commented to setpublic void setLogLevel(int logLevel)
logLevel
- the logLevel: 0=none, 1=info, 2=debugpublic void setSecurityPolicy(SecurityPolicy securityPolicy)
Bayeux
The Security Policy will be called to check access for all handshakes, subscriptions and publishing.
setSecurityPolicy
in interface Bayeux
securityPolicy
- The security policy instance.public void setTimeout(long ms)
public void setInterval(long ms)
public void setMultiFrameInterval(int multiFrameInterval)
multiFrameInterval
- the multiFrameInterval to setpublic int getMultiFrameInterval()
public void setAdvice(JSON.Literal advice)
public JSON.Literal getAdvice()
public boolean isRequestAvailable()
getCurrentRequest()
will return the current
requestpublic void setRequestAvailable(boolean requestAvailable)
requestAvailable
- TRUE if getCurrentRequest()
will return the current
requestpublic javax.servlet.http.HttpServletRequest getCurrentRequest()
Bayeux
getCurrentRequest
in interface Bayeux
isRequestAvailable()
is true,
else nullpublic java.util.Collection<Channel> getChannels()
Bayeux
getChannels
in interface Bayeux
public int getChannelCount()
public java.util.Collection<Client> getClients()
Bayeux
getClients
in interface Bayeux
public int getClientCount()
public boolean hasClient(java.lang.String clientId)
hasClient
in interface Bayeux
public Channel removeChannel(java.lang.String channelId)
removeChannel
in interface Bayeux
protected void initialize(javax.servlet.ServletContext context)
public void addListener(BayeuxListener listener)
Bayeux
addListener
in interface Bayeux
listener
- the listener to addBayeux.removeListener(BayeuxListener)
public void removeListener(BayeuxListener listener)
Bayeux
removeListener
in interface Bayeux
listener
- the listener to removeBayeux.addListener(BayeuxListener)
public int getMaxClientQueue()
getMaxClientQueue
in interface Bayeux
Bayeux.setMaxClientQueue(int)
public void setMaxClientQueue(int size)
setMaxClientQueue
in interface Bayeux
size
- The size which if a client queue exceeds, forces a call to
QueueListener#queueMaxed(Client, Message)
to check if the message should be
added. If set to -1, there is no queue limit. If set to zero, messages are
not queued unless a QueueListener
is applied that returns true.Bayeux.getMaxClientQueue()
protected Message extendRcv(ClientImpl from, Message message)
protected Message extendRcvMeta(ClientImpl from, Message message)
protected Message extendSendBayeux(Client from, Message message)
public Message extendSendClient(Client from, ClientImpl to, Message message)
public Message extendSendMeta(ClientImpl from, Message message)
public int getMaxLazyLatency()
public void setMaxLazyLatency(int ms)
ms
- the maximum ms that a lazy message will wait before
resuming waiting client
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |