tigase.server.bosh
Class BoshConnectionManager

java.lang.Object
  extended by tigase.server.BasicComponent
      extended by tigase.server.AbstractMessageReceiver
          extended by tigase.server.ConnectionManager<XMPPIOService<Object>>
              extended by tigase.server.xmppclient.ClientConnectionManager
                  extended by tigase.server.bosh.BoshConnectionManager
All Implemented Interfaces:
Configurable, XMPPService, IOServiceListener<XMPPIOService<Object>>, BoshSessionTaskHandler, MessageReceiver, ServerComponent, StatisticsContainer, VHostListener, XMPPIOServiceListener<XMPPIOService<Object>>
Direct Known Subclasses:
BoshConnectionClustered

public class BoshConnectionManager
extends ClientConnectionManager
implements BoshSessionTaskHandler

Describe class BoshConnectionManager here. Created: Sat Jun 2 12:24:29 2007

Version:
$Rev$
Author:
Artur Hefczyc

Nested Class Summary
 
Nested classes/interfaces inherited from class tigase.server.ConnectionManager
ConnectionManager.LIMIT_ACTION
 
Field Summary
protected  Map<UUID,BoshSession> sessions
          Field description
 
Fields inherited from class tigase.server.xmppclient.ClientConnectionManager
routings, see_other_host_strategy
 
Fields inherited from class tigase.server.ConnectionManager
connectionDelay, HT_TRAFFIC_THROTTLING_PROP_KEY, HT_TRAFFIC_THROTTLING_PROP_VAL, 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_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_IFC_PROP_VAL, PORT_KEY, PORT_LOCAL_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TLS_PROP_KEY, TLS_REQUIRED_PROP_KEY, TLS_REQUIRED_PROP_VAL, TLS_USE_PROP_KEY, TLS_USE_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, WHITE_CHAR_ACK_PROP_KEY, WHITE_CHAR_ACK_PROP_VAL, XMPP_ACK_PROP_KEY, XMPP_ACK_PROP_VAL
 
Fields inherited from class tigase.server.AbstractMessageReceiver
HOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, SCHEDULER_THREADS_PROP_KEY, SECOND
 
Fields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager
 
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AMP_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_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_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, 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, SRECV_COMP_CLASS_NAME, SSEND_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, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK
 
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
 
Constructor Summary
BoshConnectionManager()
           
 
Method Summary
protected  void addOutPackets(Queue<Packet> out_results, BoshSession bs)
          Method description
 boolean addOutStreamClosed(Packet packet, BoshSession bs)
          Method description
 boolean addOutStreamOpen(Packet packet, BoshSession bs)
           
 void cancelSendQueueTask(BoshSendQueueTask tt)
          Method description
 void cancelTask(BoshTask tt)
          Method description
protected  tigase.xmpp.JID changeDataReceiver(Packet packet, tigase.xmpp.JID newAddress, String command_sessionId, XMPPIOService<Object> serv)
          Method description
protected  BoshSession getBoshSession(tigase.xmpp.JID jid)
          Method description
 Map<String,Object> getDefaults(Map<String,Object> params)
          Method description
protected  int[] getDefPlainPorts()
          Method description
protected  int[] getDefSSLPorts()
          Method description
 String getDiscoCategoryType()
          Method description
 String getDiscoDescription()
          Method description
protected  long getMaxInactiveTime()
          Method getMaxInactiveTime returns max keep-alive time for inactive connection.
 tigase.xmpp.BareJID getSeeOtherHostForJID(tigase.xmpp.BareJID fromJID, SeeOtherHostIfc.Phase ph)
          Method description
 void getStatistics(StatisticsList list)
          Method description
protected  BoshIOService getXMPPIOServiceInstance()
          Method description
protected  ReceiverTimeoutHandler newStartedHandler()
          Method description
protected  void processCommand(Packet packet)
          Method description
 void processPacket(Packet packet)
          Method description
 Queue<Packet> processSocketData(XMPPIOService<Object> srv)
          Method description
 BoshSendQueueTask scheduleSendQueueTask(BoshSession bs, long delay)
          Method description
 BoshTask scheduleTask(BoshSession bs, long delay)
          Method description
 void serviceStarted(BoshIOService service)
          Method description
 void serviceStopped(BoshIOService service)
          Method description
 void setProperties(Map<String,Object> props)
          Method description
protected  boolean writePacketToSocket(Packet packet)
          Method description
 void writeRawData(BoshIOService ios, String data)
          Method description
 void xmppStreamClosed(BoshIOService serv)
          Method description
 String xmppStreamOpened(BoshIOService serv, Map<String,String> attribs)
          Method description
 
Methods inherited from class tigase.server.xmppclient.ClientConnectionManager
getMaxQueueSize, getSeeOtherHostInstance, hashCodeForPacket, isTlsWantClientAuthEnabled, newStoppedHandler, reconnectionFailed, serviceStarted, serviceStopped, start, stop, tlsHandshakeCompleted, xmppStreamClosed, xmppStreamOpened
 
Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, checkHighThroughputProperty, checkTrafficLimits, countIOServices, doForAllServices, everyMinute, getDefTrafficThrottling, getParamsForPort, getServiceId, getServiceId, getUniqueId, getXMPPIOService, getXMPPIOService, initBindings, initializationCompleted, isHighThroughput, packetsReady, processingInThreads, processingOutThreads, release, setName, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawData
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent
 
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
 
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getName, isInitializationComplete
 

Field Detail

sessions

protected final Map<UUID,BoshSession> sessions
Field description

Constructor Detail

BoshConnectionManager

public BoshConnectionManager()
Method Detail

addOutStreamClosed

public boolean addOutStreamClosed(Packet packet,
                                  BoshSession bs)
Method description

Specified by:
addOutStreamClosed in interface BoshSessionTaskHandler
Parameters:
packet -
bs -
Returns:

addOutStreamOpen

public boolean addOutStreamOpen(Packet packet,
                                BoshSession bs)
Specified by:
addOutStreamOpen in interface BoshSessionTaskHandler
Parameters:
packet -
bs -
Returns:

cancelSendQueueTask

public void cancelSendQueueTask(BoshSendQueueTask tt)
Method description

Specified by:
cancelSendQueueTask in interface BoshSessionTaskHandler
Parameters:
tt -

cancelTask

public void cancelTask(BoshTask tt)
Method description

Specified by:
cancelTask in interface BoshSessionTaskHandler
Parameters:
tt -

processPacket

public void processPacket(Packet packet)
Method description

Overrides:
processPacket in class ClientConnectionManager
Parameters:
packet -

processSocketData

public Queue<Packet> processSocketData(XMPPIOService<Object> srv)
Method description

Overrides:
processSocketData in class ClientConnectionManager
Parameters:
srv -
Returns:

scheduleSendQueueTask

public BoshSendQueueTask scheduleSendQueueTask(BoshSession bs,
                                               long delay)
Method description

Specified by:
scheduleSendQueueTask in interface BoshSessionTaskHandler
Parameters:
bs -
delay -
Returns:

scheduleTask

public BoshTask scheduleTask(BoshSession bs,
                             long delay)
Method description

Specified by:
scheduleTask in interface BoshSessionTaskHandler
Parameters:
bs -
delay -
Returns:

serviceStarted

public void serviceStarted(BoshIOService service)
Method description

Parameters:
service -

serviceStopped

public void serviceStopped(BoshIOService service)
Method description

Parameters:
service -

writeRawData

public void writeRawData(BoshIOService ios,
                         String data)
Method description

Specified by:
writeRawData in interface BoshSessionTaskHandler
Parameters:
ios -
data -

xmppStreamClosed

public void xmppStreamClosed(BoshIOService serv)
Method description

Parameters:
serv -

xmppStreamOpened

public String xmppStreamOpened(BoshIOService serv,
                               Map<String,String> attribs)
Method description

Parameters:
serv -
attribs -
Returns:

getDefaults

public Map<String,Object> getDefaults(Map<String,Object> params)
Method description

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class ClientConnectionManager
Parameters:
params -
Returns:

getDiscoCategoryType

public String getDiscoCategoryType()
Method description

Overrides:
getDiscoCategoryType in class ClientConnectionManager
Returns:

getDiscoDescription

public String getDiscoDescription()
Method description

Overrides:
getDiscoDescription in class ClientConnectionManager
Returns:

getSeeOtherHostForJID

public tigase.xmpp.BareJID getSeeOtherHostForJID(tigase.xmpp.BareJID fromJID,
                                                 SeeOtherHostIfc.Phase ph)
Method description

Specified by:
getSeeOtherHostForJID in interface BoshSessionTaskHandler
Parameters:
fromJID -
ph -
Returns:

getStatistics

public void getStatistics(StatisticsList list)
Method description

Specified by:
getStatistics in interface StatisticsContainer
Overrides:
getStatistics in class ConnectionManager<XMPPIOService<Object>>
Parameters:
list -

setProperties

public void setProperties(Map<String,Object> props)
Method description

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class ClientConnectionManager
Parameters:
props -

addOutPackets

protected void addOutPackets(Queue<Packet> out_results,
                             BoshSession bs)
Method description

Parameters:
out_results -
bs -

changeDataReceiver

protected tigase.xmpp.JID changeDataReceiver(Packet packet,
                                             tigase.xmpp.JID newAddress,
                                             String command_sessionId,
                                             XMPPIOService<Object> serv)
Method description

Overrides:
changeDataReceiver in class ClientConnectionManager
Parameters:
packet -
newAddress -
command_sessionId -
serv -
Returns:

newStartedHandler

protected ReceiverTimeoutHandler newStartedHandler()
Method description

Overrides:
newStartedHandler in class ClientConnectionManager
Returns:

processCommand

protected void processCommand(Packet packet)
Method description

Overrides:
processCommand in class ClientConnectionManager
Parameters:
packet -

writePacketToSocket

protected boolean writePacketToSocket(Packet packet)
Method description

Overrides:
writePacketToSocket in class ConnectionManager<XMPPIOService<Object>>
Parameters:
packet -
Returns:

getBoshSession

protected BoshSession getBoshSession(tigase.xmpp.JID jid)
Method description

Parameters:
jid -
Returns:

getDefPlainPorts

protected int[] getDefPlainPorts()
Method description

Overrides:
getDefPlainPorts in class ClientConnectionManager
Returns:

getDefSSLPorts

protected int[] getDefSSLPorts()
Method description

Overrides:
getDefSSLPorts in class ClientConnectionManager
Returns:

getMaxInactiveTime

protected long getMaxInactiveTime()
Method 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.

Overrides:
getMaxInactiveTime in class ClientConnectionManager
Returns:
a long value

getXMPPIOServiceInstance

protected BoshIOService getXMPPIOServiceInstance()
Method description

Overrides:
getXMPPIOServiceInstance in class ClientConnectionManager
Returns:


Copyright © 2013 Tigase. All rights reserved.