Class MQTTClient

java.lang.Object
org.bluezoo.gumdrop.mqtt.client.MQTTClient

public class MQTTClient extends Object
High-level MQTT client facade.

Provides a simple API for connecting to MQTT brokers. Internally creates a TCPTransportFactory, ClientEndpoint, and MQTTClientProtocolHandler, following the same pattern as SMTPClient.

Usage


 MQTTClient client = new MQTTClient("broker.example.com", 1883);
 client.setClientId("myClient");
 client.connect(new MQTTClientCallback() {
     public void connected(boolean sessionPresent, int returnCode) {
         client.subscribe("sensors/#", QoS.AT_LEAST_ONCE);
     }
     public void connectionLost(Exception cause) { ... }
     public void subscribeAcknowledged(int id, int[] qos) { ... }
     public void publishComplete(int id) { ... }
 }, (topic, payload, qos, retain) -> {
     System.out.println("Received: " + topic);
 });
 
Author:
Chris Burdess
See Also:
  • Constructor Details

  • Method Details

    • setSecure

      public void setSecure(boolean secure)
    • setSSLContext

      public void setSSLContext(SSLContext context)
    • setTrustManager

      public void setTrustManager(X509TrustManager trustManager)
    • setKeystoreFile

      public void setKeystoreFile(Path path)
    • setKeystorePass

      public void setKeystorePass(String pass)
    • setVersion

      public void setVersion(MQTTVersion version)
    • setClientId

      public void setClientId(String clientId)
    • setCleanSession

      public void setCleanSession(boolean cleanSession)
    • setKeepAlive

      public void setKeepAlive(int keepAlive)
    • setCredentials

      public void setCredentials(String username, String password)
    • setMessageStore

      public void setMessageStore(MQTTMessageStore messageStore)
    • setWill

      public void setWill(String topic, byte[] payload, QoS qos, boolean retain)
    • connect

      public void connect(MQTTClientCallback callback, MQTTMessageListener messageListener) throws IOException
      Connects to the MQTT broker.
      Parameters:
      callback - lifecycle callback
      messageListener - message delivery callback
      Throws:
      IOException - if the transport cannot be created
    • publish

      public int publish(String topic, byte[] payload, QoS qos, boolean retain)
      Publishes a message to a topic.
      Returns:
      the packet ID (0 for QoS 0)
    • publish

      public int publish(String topic, String payload, QoS qos)
      Publishes a UTF-8 string message.
    • subscribe

      public int subscribe(String topicFilter, QoS qos)
      Subscribes to a single topic filter.
      Returns:
      the packet ID
    • subscribe

      public int subscribe(String[] topicFilters, QoS[] qosLevels)
      Subscribes to multiple topic filters.
      Returns:
      the packet ID
    • unsubscribe

      public int unsubscribe(String... topicFilters)
      Unsubscribes from topic filters.
      Returns:
      the packet ID
    • disconnect

      public void disconnect()
      Sends DISCONNECT and closes the connection.