Class MultiplexerPacketDeliverer

  • All Implemented Interfaces:
    PacketDeliverer

    public class MultiplexerPacketDeliverer
    extends Object
    implements PacketDeliverer
    Fallback method used by SocketConnection when connected to a connection manager. The fallback method will be used when a SocketConnection 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 Detail

      • MultiplexerPacketDeliverer

        public MultiplexerPacketDeliverer()
    • Method Detail

      • 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.