Class MqttTransporter

All Implemented Interfaces:
org.eclipse.paho.client.mqttv3.MqttCallback, MetricConstants, MoleculerLifecycle

public class MqttTransporter extends Transporter implements org.eclipse.paho.client.mqttv3.MqttCallback
MQTT Transporter (eg. for Mosquitto MQTT Server or ActiveMQ Server). MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport (website: http://mqtt.org). Usage:
ServiceBroker broker = ServiceBroker.builder().nodeID("node1").transporter(new MqttTransporter("localhost"))
                .build();
Required dependency:

// https://mvnrepository.com/artifact/org.eclipse.paho/org.eclipse.paho.client. mqttv3
compile group: 'org.eclipse.paho', name: 'org.eclipse.paho.client.mqttv3', version: '1.2.5'
See Also:
  • Field Details

    • username

      protected String username
    • password

      protected String password
    • urls

      protected String[] urls
    • qos

      protected int qos
    • cleanSession

      protected boolean cleanSession
    • persistence

      protected org.eclipse.paho.client.mqttv3.persist.MemoryPersistence persistence
    • connectionTimeout

      protected int connectionTimeout
    • executorServiceTimeout

      protected int executorServiceTimeout
    • httpsHostnameVerificationEnabled

      protected boolean httpsHostnameVerificationEnabled
    • keepAliveInterval

      protected int keepAliveInterval
    • maxInflight

      protected int maxInflight
    • mqttVersion

      protected int mqttVersion
    • socketFactory

      protected SocketFactory socketFactory
    • hostnameVerifier

      protected HostnameVerifier hostnameVerifier
    • sslClientProps

      protected Properties sslClientProps
    • customWebSocketHeaders

      protected Properties customWebSocketHeaders
    • client

      protected org.eclipse.paho.client.mqttv3.MqttAsyncClient client
  • Constructor Details

    • MqttTransporter

      public MqttTransporter()
    • MqttTransporter

      public MqttTransporter(String... urls)
    • MqttTransporter

      public MqttTransporter(String username, String password, String... urls)
  • Method Details

    • connect

      public void connect()
      Specified by:
      connect in class Transporter
    • disconnect

      protected void disconnect()
    • reconnect

      protected void reconnect(Throwable cause)
    • connectionLost

      public void connectionLost(Throwable cause)
      Specified by:
      connectionLost in interface org.eclipse.paho.client.mqttv3.MqttCallback
    • error

      protected void error(Throwable cause)
      Description copied from class: Transporter
      Any I/O error occurred. Implementation-specific error handling goes here (reconnection, etc.).
      Overrides:
      error in class Transporter
      Parameters:
      cause - I/O error
    • stopped

      public void stopped()
      Closes transporter.
      Specified by:
      stopped in interface MoleculerLifecycle
      Overrides:
      stopped in class Transporter
    • subscribe

      public io.datatree.Promise subscribe(String channel)
      Specified by:
      subscribe in class Transporter
    • publish

      public void publish(String channel, io.datatree.Tree message)
      Specified by:
      publish in class Transporter
    • deliveryComplete

      public void deliveryComplete(org.eclipse.paho.client.mqttv3.IMqttDeliveryToken token)
      Specified by:
      deliveryComplete in interface org.eclipse.paho.client.mqttv3.MqttCallback
    • messageArrived

      public void messageArrived(String topic, org.eclipse.paho.client.mqttv3.MqttMessage message) throws Exception
      Specified by:
      messageArrived in interface org.eclipse.paho.client.mqttv3.MqttCallback
      Throws:
      Exception
    • getUrls

      public String[] getUrls()
    • setUrls

      public void setUrls(String... urls)
    • getUsername

      public String getUsername()
    • setUsername

      public void setUsername(String username)
    • getPassword

      public String getPassword()
    • setPassword

      public void setPassword(String password)
    • getQos

      public int getQos()
    • setQos

      public void setQos(int qos)
    • isCleanSession

      public boolean isCleanSession()
    • setCleanSession

      public void setCleanSession(boolean cleanSession)
    • getPersistence

      public org.eclipse.paho.client.mqttv3.persist.MemoryPersistence getPersistence()
    • setPersistence

      public void setPersistence(org.eclipse.paho.client.mqttv3.persist.MemoryPersistence persistence)
    • getConnectionTimeout

      public int getConnectionTimeout()
    • setConnectionTimeout

      public void setConnectionTimeout(int connectionTimeout)
    • getExecutorServiceTimeout

      public int getExecutorServiceTimeout()
    • setExecutorServiceTimeout

      public void setExecutorServiceTimeout(int executorServiceTimeout)
    • isHttpsHostnameVerificationEnabled

      public boolean isHttpsHostnameVerificationEnabled()
    • setHttpsHostnameVerificationEnabled

      public void setHttpsHostnameVerificationEnabled(boolean httpsHostnameVerificationEnabled)
    • getKeepAliveInterval

      public int getKeepAliveInterval()
    • setKeepAliveInterval

      public void setKeepAliveInterval(int keepAliveInterval)
    • getMaxInflight

      public int getMaxInflight()
    • setMaxInflight

      public void setMaxInflight(int maxInflight)
    • getMqttVersion

      public int getMqttVersion()
    • setMqttVersion

      public void setMqttVersion(int mqttVersion)
    • getSocketFactory

      public SocketFactory getSocketFactory()
    • setSocketFactory

      public void setSocketFactory(SocketFactory socketFactory)
    • getHostnameVerifier

      public HostnameVerifier getHostnameVerifier()
    • setHostnameVerifier

      public void setHostnameVerifier(HostnameVerifier hostnameVerifier)
    • getSslClientProps

      public Properties getSslClientProps()
    • setSslClientProps

      public void setSslClientProps(Properties sslClientProps)
    • getCustomWebSocketHeaders

      public Properties getCustomWebSocketHeaders()
    • setCustomWebSocketHeaders

      public void setCustomWebSocketHeaders(Properties customWebSocketHeaders)