Class PahoMqttV5TransportConnector

  • All Implemented Interfaces:
    de.iip_ecosphere.platform.transport.connectors.TransportConnector

    public class PahoMqttV5TransportConnector
    extends de.iip_ecosphere.platform.transport.connectors.basics.AbstractMqttTransportConnector
    A MQTT v5 connector based on Eclipse Paho. Requires TransportParameter.getApplicationId(). This implementation is potentially not thread-safe, i.e., it may require a sending queue.
    Author:
    Holger Eichelberger, SSE
    • Field Detail

      • client

        private org.eclipse.paho.mqttv5.client.MqttAsyncClient client
      • tlsEnabled

        private boolean tlsEnabled
      • qos

        private int qos
    • Constructor Detail

      • PahoMqttV5TransportConnector

        public PahoMqttV5TransportConnector()
        Creates a connector instance.
    • Method Detail

      • connect

        public void connect​(de.iip_ecosphere.platform.transport.connectors.TransportParameter params)
                     throws IOException
        Specified by:
        connect in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        connect in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        IOException
      • setReceptionCallback

        public void setReceptionCallback​(String stream,
                                         de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback)
                                  throws IOException
        Specified by:
        setReceptionCallback in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        setReceptionCallback in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        IOException
      • unsubscribe

        public void unsubscribe​(String stream,
                                boolean delete)
                         throws IOException
        Specified by:
        unsubscribe in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        unsubscribe in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        IOException
      • disconnect

        public void disconnect()
                        throws IOException
        Specified by:
        disconnect in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        disconnect in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        IOException
      • send

        private void send​(String stream,
                          Object data,
                          boolean block)
                   throws IOException
        Sends data to stream.
        Parameters:
        stream - the stream to send to
        data - the data to send
        block - shall this be a blocking or a non-blocking send operation
        Throws:
        IOException - in case that sending fails for some reason
      • waitForCompletion

        private void waitForCompletion​(org.eclipse.paho.mqttv5.client.IMqttToken token)
                                throws org.eclipse.paho.mqttv5.common.MqttException
        Waits for completion until the token is processed.
        Parameters:
        token - the token
        Throws:
        org.eclipse.paho.mqttv5.common.MqttException - in case that processing of the token fails
      • getName

        public String getName()
      • supportedEncryption

        public String supportedEncryption()
      • enabledEncryption

        public String enabledEncryption()