tigase.server.bosh

## Class BoshConnectionManager

- java.lang.Object
- - tigase.server.BasicComponent
  - - tigase.server.AbstractMessageReceiver
    - - tigase.server.ConnectionManager<XMPPIOService<Object>>
      - - tigase.server.xmppclient.ClientConnectionManager
        - - tigase.server.bosh.BoshConnectionManager

- All Implemented Interfaces:
    ClusteredComponentIfc, Configurable, XMPPService, IOServiceListener<XMPPIOService<Object>>, BoshSessionTaskHandler, MessageReceiver, ServerComponent, StatisticsContainer, StatisticsContainerIfc, 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
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `BoshConnectionManager.BOSH_OPERATION_TYPE`

    - ### Nested classes/interfaces inherited from class tigase.server.ConnectionManager

      `ConnectionManager.LIMIT_ACTION, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPE`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Map<UUID,BoshSession>` | `sessions` Field description

    - ### Fields inherited from class tigase.server.xmppclient.ClientConnectionManager

      `FORCE_REDIRECT_TO_KEY, routings, see_other_host_strategy`

    - ### Fields inherited from class tigase.server.ConnectionManager

      `connectionDelay, delayPortListening, elements_number_limit, ELEMENTS_NUMBER_LIMIT_PROP_KEY, ELEMENTS_NUMBER_LIMIT_PROP_VAL, 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_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_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, processors, 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, 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_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, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, 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, trusted, vHostManager`

    - ### Fields inherited from interface tigase.conf.Configurable

      `ADMINS_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_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, 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, 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, VHOST_MAN_CLUST_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

    Constructors
    Constructor and Description
    `BoshConnectionManager()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    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)` Method description
    `protected BoshSession` | `getBoshSession(JID jid)` Method retrieves `BoshSession` related to the particular user address
    `Map<String,Object>` | `getDefaults(Map<String,Object> params)` Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values.
    `protected int[]` | `getDefPlainPorts()` Method description
    `protected int[]` | `getDefSSLPorts()` Method description
    `String` | `getDiscoCategoryType()` Method description
    `String` | `getDiscoDescription()` Method description
    `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()` Method description
    `void` | `initBindings(Bindings binds)` Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
    `protected ReceiverTimeoutHandler` | `newStartedHandler()` Method description
    `protected Map<String,String>` | `preBindSession(Map<String,String> attr)`
    `protected void` | `processCommand(Packet packet)` Method description
    `void` | `processPacket(Packet packet)` This is the main `Packet` processing method.
    `Queue<Packet>` | `processSocketData(XMPPIOService<Object> srv)` Method description
    `BoshSendQueueTask` | `scheduleSendQueueTask(BoshSession bs, long delay)`
    `BoshTask` | `scheduleTask(BoshSession bs, long delay)`
    `void` | `serviceStarted(XMPPIOService<Object> service)` Method description
    `boolean` | `serviceStopped(XMPPIOService<Object> xmppService)`
    `void` | `setProperties(Map<String,Object> props)` Sets all configuration properties for the object.
    `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)`

    - ### Methods inherited from class tigase.server.xmppclient.ClientConnectionManager

      `getClientTrustManagerFactory, getMaxQueueSize, getSeeOtherHostInstance, hashCodeForPacket, isAllowed, newStoppedHandler, prepareSeeOtherHost, prepareStreamClose, prepareStreamError, prepareStreamError, prepareStreamOpen, preprocessStreamFeatures, processUndeliveredPacket, reconnectionFailed, socketAccepted, start, stop, tlsHandshakeCompleted, xmppStreamError`

    - ### Methods inherited from class tigase.server.ConnectionManager

      `addWaitingTask, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, everyMinute, getDefTrafficThrottling, getParamsForPort, getServiceId, getServiceId, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, isHighThroughput, newWatchdog, 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, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent`

    - ### Methods inherited from class tigase.server.BasicComponent

      `addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getComponentInfo, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setClusterController, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface tigase.server.bosh.BoshSessionTaskHandler

      `getDefHostName, processUndeliveredPacket`

    - ### Methods inherited from interface tigase.stats.StatisticsContainerIfc

      `getName`

    - ### Methods inherited from interface tigase.server.MessageReceiver

      `getDefHostName`

    - ### Methods inherited from interface tigase.server.ServerComponent

      `getComponentId, getComponentInfo, 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,
                                            boolean withTimeout)

      Specified by:
        `addOutStreamClosed` in interface `BoshSessionTaskHandler`

    - #### addOutStreamOpen

          public boolean addOutStreamOpen(Packet packet,
                                          BoshSession bs)

      Specified by:
        `addOutStreamOpen` in interface `BoshSessionTaskHandler`

    - #### cancelSendQueueTask

          public void cancelSendQueueTask(BoshSendQueueTask tt)

      Specified by:
        `cancelSendQueueTask` in interface `BoshSessionTaskHandler`

    - #### cancelTask

          public void cancelTask(BoshTask tt)

      Specified by:
        `cancelTask` in interface `BoshSessionTaskHandler`

    - #### processPacket

          public void processPacket(Packet packet)

      Description copied from class: `AbstractMessageReceiver`
      This is the main `Packet` 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.
      Please note, the `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.
      Processing in this method is asynchronous, therefore there is no result value. If there are some 'result' packets generated during processing, they should be passed back using `addOutPacket(Packet)` method.
      Overrides:
        `processPacket` in class `ClientConnectionManager`
      Parameters:
        `packet` - is an instance of the `Packet` class passed for processing.

    - #### setupSidlogger

          protected static void setupSidlogger(Level lvl)

    - #### setupWatchdogThread

          protected void setupWatchdogThread()

      Overrides:
        `setupWatchdogThread` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### preBindSession

          protected Map<String,String> preBindSession(Map<String,String> attr)

    - #### processSocketData

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

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `processSocketData` in class `ClientConnectionManager`
      Returns:
        a value of `Queue<Packet>`

    - #### scheduleSendQueueTask

          public BoshSendQueueTask scheduleSendQueueTask(BoshSession bs,
                                                         long delay)

      Specified by:
        `scheduleSendQueueTask` in interface `BoshSessionTaskHandler`

    - #### scheduleTask

          public BoshTask scheduleTask(BoshSession bs,
                                       long delay)

      Specified by:
        `scheduleTask` in interface `BoshSessionTaskHandler`

    - #### serviceStarted

          public void serviceStarted(XMPPIOService<Object> service)

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `serviceStarted` in class `ClientConnectionManager`

    - #### serviceStopped

          public boolean serviceStopped(XMPPIOService<Object> xmppService)

      Specified by:
        `serviceStopped` in interface `IOServiceListener<XMPPIOService<Object>>`
      Overrides:
        `serviceStopped` in class `ClientConnectionManager`

    - #### writeRawData

          public void writeRawData(BoshIOService ios,
                                   String data)

      Specified by:
        `writeRawData` in interface `BoshSessionTaskHandler`

    - #### xmppStreamClosed

          public void xmppStreamClosed(XMPPIOService<Object> serv)

      Specified by:
        `xmppStreamClosed` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`
      Overrides:
        `xmppStreamClosed` in class `ClientConnectionManager`

    - #### xmppStreamOpened

          public String xmppStreamOpened(XMPPIOService<Object> serv,
                                         Map<String,String> attribs)

      Specified by:
        `xmppStreamOpened` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`
      Overrides:
        `xmppStreamOpened` in class `ClientConnectionManager`

    - #### getDefaults

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

      Description copied from class: `AbstractMessageReceiver`
      Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values. All the default parameters returned from this method are later passed to the `setProperties(...)` method. Some of them may have changed value if they have been overwritten in the server configuration. The configuration property value can be of any of the basic types: `int`, `long`, `boolean`, `String`.
      Specified by:
        `getDefaults` in interface `Configurable`
      Overrides:
        `getDefaults` in class `ClientConnectionManager`
      Parameters:
        `params` - is a `Map` with some initial properties set for the starting up server. These parameters can be used as a hints to generate component's default configuration.
      Returns:
        a `Map` with the component default configuration.

    - #### getDiscoCategoryType

          public String getDiscoCategoryType()

      Description copied from class: `BasicComponent`
      Method description
      Overrides:
        `getDiscoCategoryType` in class `ClientConnectionManager`
      Returns:
        a value of `String`

    - #### getDiscoDescription

          public String getDiscoDescription()

      Description copied from class: `BasicComponent`
      Method description
      Overrides:
        `getDiscoDescription` in class `ClientConnectionManager`
      Returns:
        a value of `String`

    - #### getJidForBoshSession

          public JID getJidForBoshSession(BoshSession bs)

      Returns full jid of passed BoshSession instance
      Specified by:
        `getJidForBoshSession` in interface `BoshSessionTaskHandler`
      Parameters:
        `bs` - `BoshSession` for which JID should be retrieved
      Returns:
        JID address related to particular `BoshSession`

    - #### getSeeOtherHostError

          public Element getSeeOtherHostError(Packet packet,
                                              BareJID destination)

      Specified by:
        `getSeeOtherHostError` in interface `BoshSessionTaskHandler`

    - #### getSeeOtherHostForJID

          public BareJID getSeeOtherHostForJID(Packet packet,
                                               BareJID fromJID,
                                               SeeOtherHostIfc.Phase ph)

      Specified by:
        `getSeeOtherHostForJID` in interface `BoshSessionTaskHandler`

    - #### getStatistics

          public void getStatistics(StatisticsList list)

      Description copied from class: `AbstractMessageReceiver`
      Method returns component statistics. Please note, the method can be called every second by the server monitoring system therefore no extensive or lengthy calculations are allowed. If there are some statistics requiring lengthy operations like database access they must have `Level.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.
      Level guard code looks like the example below:

           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.
      Specified by:
        `getStatistics` in interface `StatisticsContainerIfc`
      Overrides:
        `getStatistics` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `list` - is a `StatistcsList` where all statistics are stored.

    - #### setProperties

          public void setProperties(Map<String,Object> props)
                             throws ConfigurationException

      Description copied from interface: `Configurable`
      Sets all configuration properties for the object.
      Specified by:
        `setProperties` in interface `Configurable`
      Overrides:
        `setProperties` in class `ClientConnectionManager`
      Parameters:
        `props` - `Map` with the configuration
      Throws:
        `ConfigurationException` - - if setting configuration will fail which will make it unable to work

    - #### addOutPackets

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

      Method adds packets to the output queue stamping it with the appropriate `BoshSession` data
      Parameters:
        `out_results` - collection of `Packet` objects to be added to queue
        `bs` - related `BoshSession`

    - #### changeDataReceiver

          protected JID changeDataReceiver(Packet packet,
                                           JID newAddress,
                                           String command_sessionId,
                                           XMPPIOService<Object> serv)

      Description copied from class: `ClientConnectionManager`
      Method description
      Overrides:
        `changeDataReceiver` in class `ClientConnectionManager`
      Returns:
        a value of `JID`

    - #### newStartedHandler

          protected ReceiverTimeoutHandler newStartedHandler()

      Description copied from class: `ClientConnectionManager`
      Method description
      Overrides:
        `newStartedHandler` in class `ClientConnectionManager`
      Returns:
        a value of `ReceiverTimeoutHandler`

    - #### processCommand

          protected void processCommand(Packet packet)

      Description copied from class: `ClientConnectionManager`
      Method description
      Overrides:
        `processCommand` in class `ClientConnectionManager`

    - #### writePacketToSocket

          protected boolean writePacketToSocket(Packet packet)

      Overrides:
        `writePacketToSocket` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `boolean`

    - #### getBoshSession

          protected BoshSession getBoshSession(JID jid)

      Method retrieves `BoshSession` related to the particular user address
      Parameters:
        `jid` - address for which `BoshSession` should be returned
      Returns:
        a value of `BoshSession`

    - #### getDefPlainPorts

          protected int[] getDefPlainPorts()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getDefPlainPorts` in class `ClientConnectionManager`
      Returns:
        a value of `int[]`

    - #### getDefSSLPorts

          protected int[] getDefSSLPorts()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getDefSSLPorts` in class `ClientConnectionManager`
      Returns:
        a value of `int[]`

    - #### 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

    - #### initBindings

          public void initBindings(Bindings binds)

      Description copied from class: `BasicComponent`
      Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
      Overrides:
        `initBindings` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `binds` - A mapping of key/value pairs, all of whose keys are Strings.

    - #### getXMPPIOServiceInstance

          protected BoshIOService getXMPPIOServiceInstance()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getXMPPIOServiceInstance` in class `ClientConnectionManager`
      Returns:
        a value of `IO`

Copyright © 2017 "Tigase, Inc.". All rights reserved.