Class MultiplexerPacketDeliverer

java.lang.Object
org.jivesoftware.openfire.multiplex.MultiplexerPacketDeliverer
All Implemented Interfaces:
PacketDeliverer

public class MultiplexerPacketDeliverer extends Object implements PacketDeliverer
Fallback method used by NettyConnection when connected to a connection manager. The fallback method will be used when a connection fails to send a Packet (probably because the socket was closed).

The first attempt will be to send the packet using another connection to the same connection manager (since managers may have a pool of connections to the server). And if that fails then instances of Message may be stored offline for later retrieval. Since packets may be wrapped by special IQ packets (read the Connection Manager JEP for more information) we need to unwrap the packet and store the wrapped packet offline.

Author:
Gaston Dombiak
  • Constructor Details

    • MultiplexerPacketDeliverer

      public MultiplexerPacketDeliverer()
  • Method Details

    • setConnectionManagerDomain

      public void setConnectionManagerDomain(String connectionManagerDomain)
    • deliver

      public void deliver(org.xmpp.packet.Packet packet) throws UnauthorizedException, PacketException
      Description copied from interface: PacketDeliverer
      Delivers the given packet based on packet recipient and sender. The deliverer defers actual routing decisions to other classes.

      Warning

      Be careful to enforce concurrency DbC of concurrent by synchronizing any accesses to class resources.
      Specified by:
      deliver in interface PacketDeliverer
      Parameters:
      packet - the packet to route
      Throws:
      UnauthorizedException - if the user is not authorised
      PacketException - if the packet is null or the packet could not be routed.