Package software.amazon.awssdk.crt.mqtt
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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class software.amazon.awssdk.crt.CrtResource
CrtResource.ResourceInstance
-
-
Constructor Summary
Constructors Constructor Description MqttClientConnection(MqttConnectionConfig config)
Constructs a new MqttClientConnection.MqttClientConnection(Mqtt5Client mqtt5client, MqttClientConnectionEvents callbacks)
Constructs a new MqttClientConnection from a Mqtt5Client.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description CompletableFuture<Boolean>
connect()
Connect to the service endpoint and start a sessionCompletableFuture<Void>
disconnect()
Disconnects the current sessionMqttClientConnectionOperationStatistics
getOperationStatistics()
Returns statistics about the current state of the MqttClientConnection's queue of operations.void
onMessage(Consumer<MqttMessage> handler)
Sets a handler to be invoked whenever a message arrives, subscription or notCompletableFuture<Integer>
publish(MqttMessage message)
Publishes a message to a topic.CompletableFuture<Integer>
publish(MqttMessage message, QualityOfService qos, boolean retain)
Deprecated.CompletableFuture<Integer>
subscribe(String topic, QualityOfService qos)
Subscribes to a topic without a handler (messages will only be delivered to the OnMessage handler)CompletableFuture<Integer>
subscribe(String topic, QualityOfService qos, Consumer<MqttMessage> handler)
Subscribes to a topicCompletableFuture<Integer>
unsubscribe(String topic)
Unsubscribes from a topic-
Methods inherited from class software.amazon.awssdk.crt.CrtResource
addRef, addReferenceTo, close, collectNativeResource, collectNativeResources, decRef, getNativeHandle, getResourceLogDescription, isNull, logNativeResources, logNativeResources, removeReferenceTo, setDescription, waitForNoResources
-
-
-
-
Constructor Detail
-
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 fromcallbacks
- connection callbacks triggered when receive connection events- Throws:
MqttException
- If mqttClient is null
-
-
Method Detail
-
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 toqos
-QualityOfService
for this subscriptionhandler
- 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 toqos
-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.
-
-