@Bean(name="bosh", parent=Kernel.class, active=true) @ConfigType(value={DefaultMode,ConnectionManagersMode}) @ClusterModeRequired(active=false) public class BoshConnectionManager extends ClientConnectionManager implements BoshSessionTaskHandler, BoshIOService.ConfigProvider
| Modifier and Type | Class and Description |
|---|---|
protected static class |
BoshConnectionManager.BOSH_OPERATION_TYPE |
ConnectionManager.LIMIT_ACTION, ConnectionManager.PortConfigBean, ConnectionManager.PortsConfigBean, ConnectionManager.SecPortConfigBean, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPEBasicComponent.ServerInfoVHostItemExtensionPacketWriterWithTimeout.Handler| Modifier and Type | Field and Description |
|---|---|
static String |
BOSH_CLOSE_CONNECTION_PROP_KEY |
static String |
BOSH_EXTRA_HEADERS_FILE_PROP_KEY |
static String |
BOSH_EXTRA_HEADERS_FILE_PROP_VAL |
static String |
CLIENT_ACCESS_POLICY_FILE_PROP_KEY |
static String |
CLIENT_ACCESS_POLICY_FILE_PROP_VAL |
protected Map<UUID,BoshSession> |
sessions |
eventBus, FORCE_REDIRECT_TO_KEY, routings, see_other_host_strategyconnectionDelay, delayPortListening, elements_number_limit, ELEMENTS_NUMBER_LIMIT_PROP_KEY, ELEMENTS_NUMBER_LIMIT_PROP_VAL, HT_TRAFFIC_THROTTLING_PROP_KEY, HT_TRAFFIC_THROTTLING_PROP_VAL, kernel, LAST_MINUTE_BIN_LIMIT_PROP_VAL, LAST_MINUTE_PACKETS_LIMIT_PROP_VAL, MAX_INACTIVITY_TIME, MAX_RECONNECTS_PROP_KEY, net_buffer, NET_BUFFER_HT_PROP_KEY, NET_BUFFER_HT_PROP_VAL, NET_BUFFER_LIMIT_HT_PROP_VAL, NET_BUFFER_LIMIT_PROP_KEY, NET_BUFFER_LIMIT_ST_PROP_VAL, NET_BUFFER_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, pingElement, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_IFC_PROP_VAL, PORT_KEY, PORT_LISTENING_DELAY_DEF, PORT_LISTENING_DELAY_KEY, PORT_LOCAL_HOST_PROP_KEY, PORT_NEW_CONNECTIONS_THROTTLING_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, processors, PROP_KEY, serviceConnectedTimeout, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, trafficThrottling, WATCHDOG_DELAY, WATCHDOG_PING_TYPE_KEY, WATCHDOG_TIMEOUT, watchdogDelay, watchdogPingType, watchdogTimeout, WHITE_CHAR_ACK_PROP_KEY, WHITE_CHAR_ACK_PROP_VAL, XMPP_ACK_PROP_KEY, XMPP_ACK_PROP_VALHOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, SCHEDULER_THREADS_PROP_KEY, SECONDadmins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManagerADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EVENTBUS_CLASS_NAME, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACKCMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS| Constructor and Description |
|---|
BoshConnectionManager() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addOutPackets(Queue<Packet> out_results,
BoshSession bs)
Method adds packets to the output queue stamping it with the appropriate
BoshSession data |
boolean |
addOutStreamClosed(Packet packet,
BoshSession bs,
boolean withTimeout) |
boolean |
addOutStreamOpen(Packet packet,
BoshSession bs) |
void |
cancelSendQueueTask(BoshSendQueueTask tt) |
void |
cancelTask(BoshTask tt) |
protected JID |
changeDataReceiver(Packet packet,
JID newAddress,
String command_sessionId,
XMPPIOService<Object> serv) |
protected boolean |
enableServiceConnectedTimeout(XMPPIOService<Object> service) |
protected BoshSession |
getBoshSession(JID jid)
Method retrieves
BoshSession related to the particular user address |
String |
getClientAccessPolicy() |
protected int[] |
getDefPlainPorts() |
protected int[] |
getDefSSLPorts() |
String |
getDiscoCategoryType()
Method returns component category type used for service discovery responses.
|
String |
getDiscoDescription()
Method returns description used for service discovery responses.
|
String |
getExtraHeaders() |
JID |
getJidForBoshSession(BoshSession bs)
Returns full jid of passed BoshSession instance
|
protected long |
getMaxInactiveTime()
Method
getMaxInactiveTime returns max keep-alive time for inactive connection. |
Element |
getSeeOtherHostError(Packet packet,
BareJID destination) |
BareJID |
getSeeOtherHostForJID(Packet packet,
BareJID fromJID,
SeeOtherHostIfc.Phase ph) |
void |
getStatistics(StatisticsList list)
Method returns component statistics.
|
protected BoshIOService |
getXMPPIOServiceInstance() |
void |
initBindings(Bindings binds)
Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
|
void |
initialize()
Method will be called, when bean will be created, configured and ready to use.
|
boolean |
isCloseConnections() |
protected ReceiverTimeoutHandler |
newStartedHandler() |
protected Map<String,String> |
preBindSession(Map<String,String> attr) |
protected void |
processCommand(Packet packet) |
void |
processPacket(Packet packet)
This is the main
Packet processing method. |
Queue<Packet> |
processSocketData(XMPPIOService<Object> srv) |
BoshSendQueueTask |
scheduleSendQueueTask(BoshSession bs,
long delay) |
BoshTask |
scheduleTask(BoshSession bs,
long delay) |
void |
serviceStarted(XMPPIOService<Object> service) |
boolean |
serviceStopped(XMPPIOService<Object> xmppService) |
void |
setClientAccessPolicyFile(String clientAccessPolicyFile) |
void |
setExtraHeadersFile(String extraHeadersFile) |
void |
setSidLoggerLevel(String loggerLevel) |
protected static void |
setupSidlogger(Level lvl) |
protected void |
setupWatchdogThread() |
protected boolean |
writePacketToSocket(Packet packet) |
void |
writeRawData(BoshIOService ios,
String data) |
void |
xmppStreamClosed(XMPPIOService<Object> serv) |
String[] |
xmppStreamOpened(XMPPIOService<Object> serv,
Map<String,String> attribs) |
getClientTrustManagerFactory, getMaxQueueSize, getSeeOtherHostInstance, hashCodeForPacket, isAllowed, newStoppedHandler, nodeShutdown, prepareSeeOtherHost, prepareStreamClose, prepareStreamError, prepareStreamError, prepareStreamOpen, preprocessStreamFeatures, processUndeliveredPacket, reconnectionFailed, schedulerThreads, setRegistrationThrottling, setSee_other_host_strategy, socketAccepted, start, stop, tlsHandshakeCompleted, xmppStreamErroraddWaitingTask, beanConfigurationChanged, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, everyMinute, getDefPorts, getDefTrafficThrottling, getFlashCrossDomainPolicy, getNet_buffer_limit, getParamsForPort, getServiceId, getServiceId, getTrafficThrottling, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, isHighThroughput, newWatchdog, packetsReady, processingInThreads, processingOutThreads, register, release, releaseListener, serviceConnected, setFlashCrossDomainPolicyFile, setName, setNet_buffer_limit, setProcessors, setTrafficThrottling, startService, unregister, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawDataaddOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, removeRegexRouting, setCompId, setIncomingFilters, setOutogingFilters, setParent, setSchedulerThreads_sizeaddComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntityclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDefHostName, processUndeliveredPacketgetNamegetDefHostNamegetComponentId, getComponentInfo, getName, isInitializationCompletepublic static final String BOSH_CLOSE_CONNECTION_PROP_KEY
public static final String BOSH_EXTRA_HEADERS_FILE_PROP_KEY
public static final String BOSH_EXTRA_HEADERS_FILE_PROP_VAL
public static final String CLIENT_ACCESS_POLICY_FILE_PROP_KEY
public static final String CLIENT_ACCESS_POLICY_FILE_PROP_VAL
protected final Map<UUID,BoshSession> sessions
protected static void setupSidlogger(Level lvl)
public boolean addOutStreamClosed(Packet packet, BoshSession bs, boolean withTimeout)
addOutStreamClosed in interface BoshSessionTaskHandlerpublic boolean addOutStreamOpen(Packet packet, BoshSession bs)
addOutStreamOpen in interface BoshSessionTaskHandlerpublic void cancelSendQueueTask(BoshSendQueueTask tt)
cancelSendQueueTask in interface BoshSessionTaskHandlerpublic void cancelTask(BoshTask tt)
cancelTask in interface BoshSessionTaskHandlerprotected boolean enableServiceConnectedTimeout(XMPPIOService<Object> service)
enableServiceConnectedTimeout in class ConnectionManager<XMPPIOService<Object>>public void processPacket(Packet packet)
AbstractMessageReceiverPacket processing method. It is called concurrently from many threads so
implementing it in thread save manner is essential. The method is called for each packet addressed to the
component. Packet instance may be processed by different parts of the server,
different components or plugins at the same time. Therefore this is very important to tread the
Packet instance as unmodifiable object. addOutPacket(Packet) method.processPacket in class ClientConnectionManagerpacket - is an instance of the Packet class passed for processing.public Queue<Packet> processSocketData(XMPPIOService<Object> srv)
processSocketData in class ClientConnectionManagerpublic BoshSendQueueTask scheduleSendQueueTask(BoshSession bs, long delay)
scheduleSendQueueTask in interface BoshSessionTaskHandlerpublic BoshTask scheduleTask(BoshSession bs, long delay)
scheduleTask in interface BoshSessionTaskHandlerpublic void serviceStarted(XMPPIOService<Object> service)
serviceStarted in class ClientConnectionManagerpublic boolean serviceStopped(XMPPIOService<Object> xmppService)
serviceStopped in interface IOServiceListener<XMPPIOService<Object>>serviceStopped in class ClientConnectionManagerpublic void writeRawData(BoshIOService ios, String data)
writeRawData in interface BoshSessionTaskHandlerpublic void xmppStreamClosed(XMPPIOService<Object> serv)
xmppStreamClosed in interface XMPPIOServiceListener<XMPPIOService<Object>>xmppStreamClosed in class ClientConnectionManagerpublic String[] xmppStreamOpened(XMPPIOService<Object> serv, Map<String,String> attribs)
xmppStreamOpened in interface XMPPIOServiceListener<XMPPIOService<Object>>xmppStreamOpened in class ClientConnectionManagerpublic String getDiscoCategoryType()
BasicComponentgetDiscoCategoryType in class ClientConnectionManagerpublic String getDiscoDescription()
BasicComponentgetDiscoDescription in class ClientConnectionManagerpublic JID getJidForBoshSession(BoshSession bs)
getJidForBoshSession in interface BoshSessionTaskHandlerbs - BoshSession for which JID should be retrievedBoshSessionpublic Element getSeeOtherHostError(Packet packet, BareJID destination)
getSeeOtherHostError in interface BoshSessionTaskHandlerpublic BareJID getSeeOtherHostForJID(Packet packet, BareJID fromJID, SeeOtherHostIfc.Phase ph)
getSeeOtherHostForJID in interface BoshSessionTaskHandlerpublic void getStatistics(StatisticsList list)
AbstractMessageReceiverLevel.FINEST assigned and must be put inside the
level guard to prevent generating them by the system monitor. The system monitor does not collect
FINEST statistics.
if (list.checkLevel(Level.FINEST)) {
// Some CPU intensive calculations or lengthy operations
list.add(getName(), "Statistic description", stat_value, Level.FINEST);
}
This way you make sure your extensive operation is not executed every second by the monitoring system and does
not affect the server performance.getStatistics in interface StatisticsContainerIfcgetStatistics in class ConnectionManager<XMPPIOService<Object>>list - is a StatistcsList where all statistics are stored.public void setSidLoggerLevel(String loggerLevel)
public void initBindings(Bindings binds)
BasicComponentinitBindings in class ConnectionManager<XMPPIOService<Object>>binds - A mapping of key/value pairs, all of whose keys are Strings.public void initialize()
Initializableinitialize in interface Initializableinitialize in class BasicComponentpublic boolean isCloseConnections()
isCloseConnections in interface BoshIOService.ConfigProviderpublic String getClientAccessPolicy()
getClientAccessPolicy in interface BoshIOService.ConfigProviderpublic void setClientAccessPolicyFile(String clientAccessPolicyFile)
public String getExtraHeaders()
getExtraHeaders in interface BoshIOService.ConfigProviderpublic void setExtraHeadersFile(String extraHeadersFile)
protected void setupWatchdogThread()
setupWatchdogThread in class ConnectionManager<XMPPIOService<Object>>protected void addOutPackets(Queue<Packet> out_results, BoshSession bs)
BoshSession dataout_results - collection of Packet objects to be added to queuebs - related BoshSessionprotected JID changeDataReceiver(Packet packet, JID newAddress, String command_sessionId, XMPPIOService<Object> serv)
changeDataReceiver in class ClientConnectionManagerprotected ReceiverTimeoutHandler newStartedHandler()
newStartedHandler in class ClientConnectionManagerprotected void processCommand(Packet packet)
processCommand in class ClientConnectionManagerprotected boolean writePacketToSocket(Packet packet)
writePacketToSocket in class ConnectionManager<XMPPIOService<Object>>protected BoshSession getBoshSession(JID jid)
BoshSession related to the particular user addressjid - address for which BoshSession should be returnedBoshSessionprotected int[] getDefPlainPorts()
getDefPlainPorts in class ClientConnectionManagerprotected int[] getDefSSLPorts()
getDefSSLPorts in class ClientConnectionManagerprotected long getMaxInactiveTime()
getMaxInactiveTime returns max keep-alive time for inactive connection. For Bosh it does not
make sense to keep the idle connection longer than 10 minutes.getMaxInactiveTime in class ClientConnectionManagerlong valueprotected BoshIOService getXMPPIOServiceInstance()
getXMPPIOServiceInstance in class ClientConnectionManagerCopyright © 2004–2021 "Tigase, Inc.". All rights reserved.