Class MqttClientConnection

java.lang.Object
software.amazon.awssdk.crt.CrtResource
software.amazon.awssdk.crt.mqtt.MqttClientConnection
All Implemented Interfaces:
AutoCloseable

public class MqttClientConnection extends CrtResource
This class wraps aws-c-mqtt to provide the basic MQTT pub/sub functionality via the AWS Common Runtime MqttClientConnection represents a single connection from one MqttClient to an MQTT service endpoint
  • Constructor Details

    • MqttClientConnection

      public MqttClientConnection(MqttConnectionConfig config) throws MqttException
      Constructs a new MqttClientConnection. Connections are reusable after being disconnected.
      Parameters:
      config - Configuration to use
      Throws:
      MqttException - If mqttClient is null
    • MqttClientConnection

      public MqttClientConnection(Mqtt5Client mqtt5client, MqttClientConnectionEvents callbacks) throws MqttException
      Constructs a new MqttClientConnection from a Mqtt5Client. Connections are reusable after being disconnected.
      Parameters:
      mqtt5client - the mqtt5 client to setup from
      callbacks - connection callbacks triggered when receive connection events
      Throws:
      MqttException - If mqttClient is null
  • Method Details

    • connect

      public CompletableFuture<Boolean> connect() throws MqttException
      Connect to the service endpoint and start a session
      Returns:
      Future result is true if resuming a session, false if clean session
      Throws:
      MqttException - If the port is out of range
    • disconnect

      public CompletableFuture<Void> disconnect()
      Disconnects the current session
      Returns:
      When this future completes, the disconnection is complete
    • subscribe

      public CompletableFuture<Integer> subscribe(String topic, QualityOfService qos, Consumer<MqttMessage> handler)
      Subscribes to a topic
      Parameters:
      topic - The topic to subscribe to
      qos - QualityOfService for this subscription
      handler - A handler which can receive an MqttMessage when a message is published to the topic
      Returns:
      Future result is the packet/message id associated with the subscribe operation
    • subscribe

      public CompletableFuture<Integer> subscribe(String topic, QualityOfService qos)
      Subscribes to a topic without a handler (messages will only be delivered to the OnMessage handler)
      Parameters:
      topic - The topic to subscribe to
      qos - QualityOfService for this subscription
      Returns:
      Future result is the packet/message id associated with the subscribe operation
    • onMessage

      public void onMessage(Consumer<MqttMessage> handler)
      Sets a handler to be invoked whenever a message arrives, subscription or not
      Parameters:
      handler - A handler which can receive any MqttMessage
    • unsubscribe

      public CompletableFuture<Integer> unsubscribe(String topic)
      Unsubscribes from a topic
      Parameters:
      topic - The topic to unsubscribe from
      Returns:
      Future result is the packet/message id associated with the unsubscribe operation
    • publish

      public CompletableFuture<Integer> publish(MqttMessage message)
      Publishes a message to a topic.
      Parameters:
      message - The message to publish.
      Returns:
      Future value is the packet/message id associated with the publish operation
    • publish

      @Deprecated public CompletableFuture<Integer> publish(MqttMessage message, QualityOfService qos, boolean retain)
      Deprecated.
    • getOperationStatistics

      public MqttClientConnectionOperationStatistics getOperationStatistics()
      Returns statistics about the current state of the MqttClientConnection's queue of operations.
      Returns:
      Current state of the connection's queue of operations.