Package io.vertx.mqtt
Interface MqttClient
-
public interface MqttClient
An MQTT client
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description Future<Void>
authenticationExchange(MqttAuthenticationExchangeMessage message)
It is used for Enhanced Authentication and is able to carry an authentication method and authentication data.MqttClient
authenticationExchangeHandler(Handler<MqttAuthenticationExchangeMessage> authenticationExchangeHandler)
Sets handler which will be called after AUTH packet receivingString
clientId()
MqttClient
closeHandler(Handler<Void> closeHandler)
Set a handler that will be called when the connection with server is closedFuture<MqttConnAckMessage>
connect(int port, String host)
Connects to an MQTT server calling connectHandler after connectionFuture<MqttConnAckMessage>
connect(int port, String host, String serverName)
Connects to an MQTT server calling connectHandler after connectionstatic MqttClient
create(Vertx vertx)
Return an MQTT client instance using the default optionsstatic MqttClient
create(Vertx vertx, MqttClientOptions options)
Return an MQTT client instanceFuture<Void>
disconnect()
Disconnects from the MQTT serverMqttClient
exceptionHandler(Handler<Throwable> handler)
Set an exception handler for the client, that will be called when an error happens in internal netty structures.boolean
isConnected()
MqttClient
ping()
This method is needed by the client in order to avoid server closes the connection due to the keep alive timeout if client has no messages to sendMqttClient
pingResponseHandler(Handler<Void> pingResponseHandler)
Sets handler which will be called after PINGRESP packet receivingFuture<Integer>
publish(String topic, Buffer payload, MqttQoS qosLevel, boolean isDup, boolean isRetain)
Sends the PUBLISH message to the remote MQTT serverMqttClient
publishCompletionExpirationHandler(Handler<Integer> publishCompletionExpirationHandler)
Sets a handler which will be called when the client does not receive a PUBACK or PUBREC/PUBCOMP for a message published using QoS 1 or 2 respectively.MqttClient
publishCompletionHandler(Handler<Integer> publishCompletionHandler)
Sets a handler which will be called each time the publishing of a message has been completed.MqttClient
publishCompletionUnknownPacketIdHandler(Handler<Integer> publishCompletionPhantomHandler)
Sets a handler which will be called when the client receives a PUBACK/PUBREC/PUBCOMP with an unknown packet ID.MqttClient
publishHandler(Handler<MqttPublishMessage> publishHandler)
Sets handler which will be called each time server publish something to clientFuture<Integer>
subscribe(String topic, int qos)
Subscribes to the topic with a specified QoS levelFuture<Integer>
subscribe(Map<String,Integer> topics)
Subscribes to the topics with related QoS levelsMqttClient
subscribeCompletionHandler(Handler<MqttSubAckMessage> subscribeCompletionHandler)
Sets handler which will be called after SUBACK packet receivingFuture<Integer>
unsubscribe(String topic)
Unsubscribe from receiving messages on given topicFuture<Integer>
unsubscribe(List<String> topics)
Unsubscribe from receiving messages on given list of topicMqttClient
unsubscribeCompletionHandler(Handler<Integer> unsubscribeCompletionHandler)
Sets handler which will be called after UNSUBACK packet receiving
-
-
-
Method Detail
-
create
static MqttClient create(Vertx vertx, MqttClientOptions options)
Return an MQTT client instance- Parameters:
vertx
- Vert.x instanceoptions
- MQTT client options- Returns:
- MQTT client instance
-
create
static MqttClient create(Vertx vertx)
Return an MQTT client instance using the default options- Parameters:
vertx
- Vert.x instance- Returns:
- MQTT client instance
-
connect
Future<MqttConnAckMessage> connect(int port, String host)
Connects to an MQTT server calling connectHandler after connection- Parameters:
port
- port of the MQTT serverhost
- hostname/ip address of the MQTT server- Returns:
- a future notified when the connect call ends
-
connect
Future<MqttConnAckMessage> connect(int port, String host, String serverName)
Connects to an MQTT server calling connectHandler after connection- Parameters:
port
- port of the MQTT serverhost
- hostname/ip address of the MQTT serverserverName
- the SNI server name- Returns:
- a future notified when the connect call ends
-
disconnect
Future<Void> disconnect()
Disconnects from the MQTT server- Returns:
- a
Future
of the asynchronous result
-
publish
Future<Integer> publish(String topic, Buffer payload, MqttQoS qosLevel, boolean isDup, boolean isRetain)
Sends the PUBLISH message to the remote MQTT server- Parameters:
topic
- topic on which the message is publishedpayload
- message payloadqosLevel
- QoS levelisDup
- if the message is a duplicateisRetain
- if the message needs to be retained- Returns:
- a
Future
completed after PUBLISH packet sent with packetid (not when QoS 0)
-
publishCompletionHandler
MqttClient publishCompletionHandler(Handler<Integer> publishCompletionHandler)
Sets a handler which will be called each time the publishing of a message has been completed.For a message that has been published using
- QoS 0 this means that the client has successfully sent the corresponding PUBLISH packet,
- QoS 1 this means that a corresponding PUBACK has been received from the server,
- QoS 2 this means that a corresponding PUBCOMP has been received from the server.
- Parameters:
publishCompletionHandler
- handler called with the packetId- Returns:
- current MQTT client instance
-
publishCompletionExpirationHandler
MqttClient publishCompletionExpirationHandler(Handler<Integer> publishCompletionExpirationHandler)
Sets a handler which will be called when the client does not receive a PUBACK or PUBREC/PUBCOMP for a message published using QoS 1 or 2 respectively.The time to wait for an acknowledgement message can be configured using
MqttClientOptions.setAckTimeout(int)
. If the client receives a PUBACK/PUBREC/PUBCOMP for a message after its completion has expired, the handler registered usingpublishCompletionUnknownPacketIdHandler(Handler)
will be invoked.Note that this behavior is outside the scope of the MQTT 3.1.1 specification. The client's default behavior is therefore to wait forever for the server's corresponding acknowledgement.
- Parameters:
publishCompletionExpirationHandler
- the handler to call with the ID of the expired packet- Returns:
- current MQTT client instance
-
publishCompletionUnknownPacketIdHandler
MqttClient publishCompletionUnknownPacketIdHandler(Handler<Integer> publishCompletionPhantomHandler)
Sets a handler which will be called when the client receives a PUBACK/PUBREC/PUBCOMP with an unknown packet ID.- Parameters:
publishCompletionPhantomHandler
- the handler to call with the unknown packet ID- Returns:
- current MQTT client instance
-
publishHandler
MqttClient publishHandler(Handler<MqttPublishMessage> publishHandler)
Sets handler which will be called each time server publish something to client- Parameters:
publishHandler
- handler to call- Returns:
- current MQTT client instance
-
subscribeCompletionHandler
MqttClient subscribeCompletionHandler(Handler<MqttSubAckMessage> subscribeCompletionHandler)
Sets handler which will be called after SUBACK packet receiving- Parameters:
subscribeCompletionHandler
- handler to call. List inside is a granted QoS array- Returns:
- current MQTT client instance
-
subscribe
Future<Integer> subscribe(String topic, int qos)
Subscribes to the topic with a specified QoS level- Parameters:
topic
- topic you subscribe onqos
- QoS level- Returns:
- a
Future
completed after SUBSCRIBE packet sent with packetid
-
subscribe
Future<Integer> subscribe(Map<String,Integer> topics)
Subscribes to the topics with related QoS levels- Parameters:
topics
- topics and related QoS levels to subscribe to- Returns:
- a
Future
completed after SUBSCRIBE packet sent with packetid
-
unsubscribeCompletionHandler
MqttClient unsubscribeCompletionHandler(Handler<Integer> unsubscribeCompletionHandler)
Sets handler which will be called after UNSUBACK packet receiving- Parameters:
unsubscribeCompletionHandler
- handler to call with the packetid- Returns:
- current MQTT client instance
-
unsubscribe
Future<Integer> unsubscribe(String topic)
Unsubscribe from receiving messages on given topic- Parameters:
topic
- Topic you want to unsubscribe from- Returns:
- a
Future
completed after UNSUBSCRIBE packet sent with packetid
-
unsubscribe
Future<Integer> unsubscribe(List<String> topics)
Unsubscribe from receiving messages on given list of topic- Parameters:
topics
- list of topics you want to unsubscribe from- Returns:
- a
Future
completed after UNSUBSCRIBE packet sent with packetid
-
authenticationExchangeHandler
MqttClient authenticationExchangeHandler(Handler<MqttAuthenticationExchangeMessage> authenticationExchangeHandler)
Sets handler which will be called after AUTH packet receiving- Parameters:
authenticationExchangeHandler
- handler to call- Returns:
- current MQTT client instance
-
authenticationExchange
Future<Void> authenticationExchange(MqttAuthenticationExchangeMessage message)
It is used for Enhanced Authentication and is able to carry an authentication method and authentication data.- Parameters:
message
- authentication exchange message- Returns:
- a
Future
completed after AUTH packet sent
-
pingResponseHandler
MqttClient pingResponseHandler(Handler<Void> pingResponseHandler)
Sets handler which will be called after PINGRESP packet receiving- Parameters:
pingResponseHandler
- handler to call- Returns:
- current MQTT client instance
-
exceptionHandler
MqttClient exceptionHandler(Handler<Throwable> handler)
Set an exception handler for the client, that will be called when an error happens in internal netty structures.io.netty.handler.codec.DecoderException
can be one of the cause- Parameters:
handler
- the exception handler- Returns:
- current MQTT client instance
-
closeHandler
MqttClient closeHandler(Handler<Void> closeHandler)
Set a handler that will be called when the connection with server is closed- Parameters:
closeHandler
- handler to call- Returns:
- current MQTT client instance
-
ping
MqttClient ping()
This method is needed by the client in order to avoid server closes the connection due to the keep alive timeout if client has no messages to send- Returns:
- current MQTT client instance
-
clientId
String clientId()
- Returns:
- the client identifier
-
isConnected
boolean isConnected()
- Returns:
- if the connection between client and remote server is established/open
-
-