blob: 3727583a7343f0b17e97594ce71a263209844790 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_101) on Thu Sep 01 13:59:13 BST 2016 -->
<title>IMqttAsyncClient</title>
<meta name="date" content="2016-09-01">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="IMqttAsyncClient";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IMqttAsyncClient.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html" target="_top">Frames</a></li>
<li><a href="IMqttAsyncClient.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.paho.client.mqttv3</div>
<h2 title="Interface IMqttAsyncClient" class="title">Interface IMqttAsyncClient</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttAsyncClient.html" title="class in org.eclipse.paho.client.mqttv3">MqttAsyncClient</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">IMqttAsyncClient</span></pre>
<div class="block">Enables an application to communicate with an MQTT server using non-blocking methods.
<p>
It provides applications a simple programming interface to all features of the MQTT version 3.1
specification including:
<ul>
<li>connect
<li>publish
<li>subscribe
<li>unsubscribe
<li>disconnect
</ul>
</p>
<p>
There are two styles of MQTT client, this one and <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttClient</code></a>.
<ul>
<li>IMqttAsyncClient provides a set of non-blocking methods that return control to the
invoking application after initial validation of parameters and state. The main processing is
performed in the background so as not to block the application program's thread. This non-
blocking approach is handy when the application needs to carry on processing while the
MQTT action takes place. For instance connecting to an MQTT server can take time, using
the non-blocking connect method allows an application to display a busy indicator while the
connect action takes place in the background. Non blocking methods are particularly useful
in event oriented programs and graphical programs where invoking methods that take time
to complete on the the main or GUI thread can cause problems. The non-blocking interface
can also be used in blocking form.</li>
<li>IMqttClient provides a set of methods that block and return control to the application
program once the MQTT action has completed. It is a thin layer that sits on top of the
IMqttAsyncClient implementation and is provided mainly for compatibility with earlier
versions of the MQTT client. In most circumstances it is recommended to use IMqttAsyncClient
based clients which allow an application to mix both non-blocking and blocking calls. </li>
</ul>
</p>
<p>
An application is not restricted to using one style if an IMqttAsyncClient based client is used
as both blocking and non-blocking methods can be used in the same application. If an IMqttClient
based client is used then only blocking methods are available to the application.
For more details on the blocking client see <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttClient</code></a></p>
<p>There are two forms of non-blocking method:
<ol>
<li>
<code><pre>
IMqttToken token = asyncClient.method(parms)
</pre></code>
<p>In this form the method returns a token that can be used to track the
progress of the action (method). The method provides a waitForCompletion()
method that once invoked will block until the action completes. Once
completed there are method on the token that can be used to check if the
action completed successfully or not. For example
to wait until a connect completes:
<code><pre>
IMqttToken conToken;
conToken = asyncClient.client.connect(conToken);
... do some work...
conToken.waitForCompletion();
</pre></code>
</p>
<p>To turn a method into a blocking invocation the following form can be used:
<code><pre>
IMqttToken token;
token = asyncClient.method(parms).waitForCompletion();
</pre></code>
</li>
<li>
<code><pre>
IMqttToken token method(parms, Object userContext, IMqttActionListener callback)
</pre></code>
<p>In this form a callback is registered with the method. The callback will be
notified when the action succeeds or fails. The callback is invoked on the thread
managed by the MQTT client so it is important that processing is minimised in the
callback. If not the operation of the MQTT client will be inhibited. For example
to be notified (called back) when a connect completes:
<code><pre>
IMqttToken conToken;
conToken = asyncClient.connect("some context",new new MqttAsyncActionListener() {
public void onSuccess(IMqttToken asyncActionToken) {
log("Connected");
}
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
log ("connect failed" +exception);
}
});
</pre></code>
An optional context object can be passed into the method which will then be made
available in the callback. The context is stored by the MQTT client) in the token
which is then returned to the invoker. The token is provided to the callback methods
where the context can then be accessed.
</p>
</li>
</ol>
<p>To understand when the delivery of a message is complete either of the two methods above
can be used to either wait on or be notified when the publish completes. An alternative is to
use the <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html#deliveryComplete-org.eclipse.paho.client.mqttv3.IMqttDeliveryToken-"><code>MqttCallback.deliveryComplete(IMqttDeliveryToken)</code></a> method which will
also be notified when a message has been delivered to the requested quality of service.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#close--">close</a></span>()</code>
<div class="block">Close the client
Releases all resource associated with the client.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect--">connect</a></span>()</code>
<div class="block">Connects to an MQTT server using the default options.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">connect</a></span>(<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3">MqttConnectOptions</a>&nbsp;options)</code>
<div class="block">Connects to an MQTT server using the provided connect options.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">connect</a></span>(<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3">MqttConnectOptions</a>&nbsp;options,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Connects to an MQTT server using the specified options.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">connect</a></span>(java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Connects to an MQTT server using the default options.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect--">disconnect</a></span>()</code>
<div class="block">Disconnects from the server.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect-long-">disconnect</a></span>(long&nbsp;quiesceTimeout)</code>
<div class="block">Disconnects from the server.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect-long-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">disconnect</a></span>(long&nbsp;quiesceTimeout,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Disconnects from the server.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">disconnect</a></span>(java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Disconnects from the server.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnectForcibly--">disconnectForcibly</a></span>()</code>
<div class="block">Disconnects from the server forcibly to reset all the states.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnectForcibly-long-">disconnectForcibly</a></span>(long&nbsp;disconnectTimeout)</code>
<div class="block">Disconnects from the server forcibly to reset all the states.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnectForcibly-long-long-">disconnectForcibly</a></span>(long&nbsp;quiesceTimeout,
long&nbsp;disconnectTimeout)</code>
<div class="block">Disconnects from the server forcibly to reset all the states.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#getClientId--">getClientId</a></span>()</code>
<div class="block">Returns the client ID used by this client.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#getPendingDeliveryTokens--">getPendingDeliveryTokens</a></span>()</code>
<div class="block">Returns the delivery tokens for any outstanding publish operations.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#getServerURI--">getServerURI</a></span>()</code>
<div class="block">Returns the address of the server used by this client.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#isConnected--">isConnected</a></span>()</code>
<div class="block">Determines if this client is currently connected to the server.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#messageArrivedComplete-int-int-">messageArrivedComplete</a></span>(int&nbsp;messageId,
int&nbsp;qos)</code>
<div class="block">Indicate that the application has completed processing the message with id messageId.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-byte:A-int-boolean-">publish</a></span>(java.lang.String&nbsp;topic,
byte[]&nbsp;payload,
int&nbsp;qos,
boolean&nbsp;retained)</code>
<div class="block">Publishes a message to a topic on the server.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-byte:A-int-boolean-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">publish</a></span>(java.lang.String&nbsp;topic,
byte[]&nbsp;payload,
int&nbsp;qos,
boolean&nbsp;retained,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Publishes a message to a topic on the server.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-">publish</a></span>(java.lang.String&nbsp;topic,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3">MqttMessage</a>&nbsp;message)</code>
<div class="block">Publishes a message to a topic on the server.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">publish</a></span>(java.lang.String&nbsp;topic,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3">MqttMessage</a>&nbsp;message,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Publishes a message to a topic on the server.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-">setCallback</a></span>(<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3">MqttCallback</a>&nbsp;callback)</code>
<div class="block">Sets a callback listener to use for events that happen asynchronously.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#setManualAcks-boolean-">setManualAcks</a></span>(boolean&nbsp;manualAcks)</code>
<div class="block">If manualAcks is set to true, then on completion of the messageArrived callback
the MQTT acknowledgements are not sent.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos)</code>
<div class="block">Subscribe to multiple topics, each of which may include wildcards.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>[]&nbsp;messageListeners)</code>
<div class="block">Subscribe to multiple topics, each of which may include wildcards.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Subscribes to multiple topics, each of which may include wildcards.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>[]&nbsp;messageListeners)</code>
<div class="block">Subscribe to multiple topics, each of which may include wildcards.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String-int-">subscribe</a></span>(java.lang.String&nbsp;topicFilter,
int&nbsp;qos)</code>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String-int-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">subscribe</a></span>(java.lang.String&nbsp;topicFilter,
int&nbsp;qos,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>&nbsp;messageListener)</code>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String-int-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">subscribe</a></span>(java.lang.String&nbsp;topicFilter,
int&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String-int-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">subscribe</a></span>(java.lang.String&nbsp;topicFilter,
int&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>&nbsp;messageListener)</code>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String-">unsubscribe</a></span>(java.lang.String&nbsp;topicFilter)</code>
<div class="block">Requests the server unsubscribe the client from a topic.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String:A-">unsubscribe</a></span>(java.lang.String[]&nbsp;topicFilters)</code>
<div class="block">Requests the server unsubscribe the client from one or more topics.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">unsubscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Requests the server unsubscribe the client from one or more topics.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">unsubscribe</a></span>(java.lang.String&nbsp;topicFilter,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)</code>
<div class="block">Requests the server unsubscribe the client from a topics.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="connect--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;connect()
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></pre>
<div class="block">Connects to an MQTT server using the default options.
<p>The default options are specified in <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttConnectOptions</code></a> class.
</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the connect to complete. The token
will be passed to the callback methods if a callback is set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></code> - for security related problems</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for non security related problems</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>connect(MqttConnectOptions, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;connect(<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3">MqttConnectOptions</a>&nbsp;options)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></pre>
<div class="block">Connects to an MQTT server using the provided connect options.
<p>The connection will be established using the options specified in the
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttConnectOptions</code></a> parameter.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>options</code> - a set of connection parameters that override the defaults.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the connect to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></code> - for security related problems</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for non security related problems</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>connect(MqttConnectOptions, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="connect-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;connect(java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></pre>
<div class="block">Connects to an MQTT server using the default options.
<p>The default options are specified in <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttConnectOptions</code></a> class.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when the connect completes. Use
null if not required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the connect to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></code> - for security related problems</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for non security related problems</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>connect(MqttConnectOptions, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;connect(<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html" title="class in org.eclipse.paho.client.mqttv3">MqttConnectOptions</a>&nbsp;options,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></pre>
<div class="block">Connects to an MQTT server using the specified options.
<p>The server to connect to is specified on the constructor.
It is recommended to call <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>setCallback(MqttCallback)</code></a> prior to
connecting in order that messages destined for the client can be accepted
as soon as the client is connected.
</p>
<p>The method returns control before the connect completes. Completion can
be tracked by:
<ul>
<li>Waiting on the returned token <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html#waitForCompletion--"><code>IMqttToken.waitForCompletion()</code></a> or</li>
<li>Passing in a callback <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttActionListener</code></a></li>
</ul>
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>options</code> - a set of connection parameters that override the defaults.</dd>
<dd><code>userContext</code> - optional object for used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when the connect completes. Use
null if not required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the connect to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a></code> - for security related problems</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for non security related problems including communication errors</dd>
</dl>
</li>
</ul>
<a name="disconnect--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;disconnect()
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server.
<p>An attempt is made to quiesce the client allowing outstanding
work to complete before disconnecting. It will wait
for a maximum of 30 seconds for work to quiesce before disconnecting.
This method must not be called from inside <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttCallback</code></a> methods.
</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for disconnect to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for problems encountered while disconnecting</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect-long-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>disconnect(long, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="disconnect-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;disconnect(long&nbsp;quiesceTimeout)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server.
<p>An attempt is made to quiesce the client allowing outstanding
work to complete before disconnecting. It will wait
for a maximum of the specified quiesce time for work to complete before disconnecting.
This method must not be called from inside <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttCallback</code></a> methods.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quiesceTimeout</code> - the amount of time in milliseconds to allow for
existing work to finish before disconnecting. A value of zero or less
means the client will not quiesce.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for disconnect to complete. The token
will be passed to the callback methods if a callback is set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for problems encountered while disconnecting</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect-long-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>disconnect(long, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="disconnect-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;disconnect(java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server.
<p>An attempt is made to quiesce the client allowing outstanding
work to complete before disconnecting. It will wait
for a maximum of 30 seconds for work to quiesce before disconnecting.
This method must not be called from inside <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttCallback</code></a> methods.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when the disconnect completes. Use
null if not required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the disconnect to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for problems encountered while disconnecting</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#disconnect-long-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>disconnect(long, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="disconnect-long-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;disconnect(long&nbsp;quiesceTimeout,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server.
<p>
The client will wait for <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttCallback</code></a> methods to
complete. It will then wait for up to the quiesce timeout to allow for
work which has already been initiated to complete. For instance when a QoS 2
message has started flowing to the server but the QoS 2 flow has not completed.It
prevents new messages being accepted and does not send any messages that have
been accepted but not yet started delivery across the network to the server. When
work has completed or after the quiesce timeout, the client will disconnect from
the server. If the cleanSession flag was set to false and is set to false the
next time a connection is made QoS 1 and 2 messages that
were not previously delivered will be delivered.</p>
<p>This method must not be called from inside <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttCallback</code></a> methods.</p>
<p>The method returns control before the disconnect completes. Completion can
be tracked by:
<ul>
<li>Waiting on the returned token <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html#waitForCompletion--"><code>IMqttToken.waitForCompletion()</code></a> or</li>
<li>Passing in a callback <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttActionListener</code></a></li>
</ul>
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quiesceTimeout</code> - the amount of time in milliseconds to allow for
existing work to finish before disconnecting. A value of zero or less
means the client will not quiesce.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when the disconnect completes. Use
null if not required.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the connect to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for problems encountered while disconnecting</dd>
</dl>
</li>
</ul>
<a name="disconnectForcibly--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnectForcibly</h4>
<pre>void&nbsp;disconnectForcibly()
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server forcibly to reset all the states. Could be useful when disconnect attempt failed.
<p>
Because the client is able to establish the TCP/IP connection to a none MQTT server and it will certainly fail to
send the disconnect packet. It will wait for a maximum of 30 seconds for work to quiesce before disconnecting and
wait for a maximum of 10 seconds for sending the disconnect packet to server.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if any unexpected error</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4.1</dd>
</dl>
</li>
</ul>
<a name="disconnectForcibly-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnectForcibly</h4>
<pre>void&nbsp;disconnectForcibly(long&nbsp;disconnectTimeout)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server forcibly to reset all the states. Could be useful when disconnect attempt failed.
<p>
Because the client is able to establish the TCP/IP connection to a none MQTT server and it will certainly fail to
send the disconnect packet. It will wait for a maximum of 30 seconds for work to quiesce before disconnecting.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>disconnectTimeout</code> - the amount of time in milliseconds to allow send disconnect packet to server.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if any unexpected error</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4.1</dd>
</dl>
</li>
</ul>
<a name="disconnectForcibly-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnectForcibly</h4>
<pre>void&nbsp;disconnectForcibly(long&nbsp;quiesceTimeout,
long&nbsp;disconnectTimeout)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Disconnects from the server forcibly to reset all the states. Could be useful when disconnect attempt failed.
<p>
Because the client is able to establish the TCP/IP connection to a none MQTT server and it will certainly fail to
send the disconnect packet.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quiesceTimeout</code> - the amount of time in milliseconds to allow for existing work to finish before
disconnecting. A value of zero or less means the client will not quiesce.</dd>
<dd><code>disconnectTimeout</code> - the amount of time in milliseconds to allow send disconnect packet to server.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if any unexpected error</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4.1</dd>
</dl>
</li>
</ul>
<a name="isConnected--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConnected</h4>
<pre>boolean&nbsp;isConnected()</pre>
<div class="block">Determines if this client is currently connected to the server.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if connected, <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
<a name="getClientId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClientId</h4>
<pre>java.lang.String&nbsp;getClientId()</pre>
<div class="block">Returns the client ID used by this client.
<p>All clients connected to the
same server or server farm must have a unique ID.
</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the client ID used by this client.</dd>
</dl>
</li>
</ul>
<a name="getServerURI--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerURI</h4>
<pre>java.lang.String&nbsp;getServerURI()</pre>
<div class="block">Returns the address of the server used by this client.
<p>The format of the returned String is the same as that used on the constructor.
</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the server's address, as a URI String.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttAsyncClient.html#MqttAsyncClient-java.lang.String-java.lang.String-"><code>MqttAsyncClient.MqttAsyncClient(String, String)</code></a></dd>
</dl>
</li>
</ul>
<a name="publish-java.lang.String-byte:A-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publish</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a>&nbsp;publish(java.lang.String&nbsp;topic,
byte[]&nbsp;payload,
int&nbsp;qos,
boolean&nbsp;retained)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></pre>
<div class="block">Publishes a message to a topic on the server.
<p>A convenience method, which will
create a new <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttMessage</code></a> object with a byte array payload and the
specified QoS, and then publish it.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - to deliver the message to, for example "finance/stock/ibm".</dd>
<dd><code>payload</code> - the byte array to use as the payload</dd>
<dd><code>qos</code> - the Quality of Service to deliver the message at. Valid values are 0, 1 or 2.</dd>
<dd><code>retained</code> - whether or not this message should be retained by the server.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the publish to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></code> - when a problem occurs storing the message</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if value of QoS is not 0, 1 or 2.</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for other errors encountered while publishing the message.
For instance if too many messages are being processed.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>publish(String, MqttMessage, Object, IMqttActionListener)</code></a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html#setQos-int-"><code>MqttMessage.setQos(int)</code></a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html#setRetained-boolean-"><code>MqttMessage.setRetained(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="publish-java.lang.String-byte:A-int-boolean-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publish</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a>&nbsp;publish(java.lang.String&nbsp;topic,
byte[]&nbsp;payload,
int&nbsp;qos,
boolean&nbsp;retained,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></pre>
<div class="block">Publishes a message to a topic on the server.
<p>A convenience method, which will
create a new <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttMessage</code></a> object with a byte array payload and the
specified QoS, and then publish it.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - to deliver the message to, for example "finance/stock/ibm".</dd>
<dd><code>payload</code> - the byte array to use as the payload</dd>
<dd><code>qos</code> - the Quality of Service to deliver the message at. Valid values are 0, 1 or 2.</dd>
<dd><code>retained</code> - whether or not this message should be retained by the server.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when message delivery
hsa completed to the requested quality of service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the publish to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></code> - when a problem occurs storing the message</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if value of QoS is not 0, 1 or 2.</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for other errors encountered while publishing the message.
For instance client not connected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>publish(String, MqttMessage, Object, IMqttActionListener)</code></a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html#setQos-int-"><code>MqttMessage.setQos(int)</code></a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html#setRetained-boolean-"><code>MqttMessage.setRetained(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publish</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a>&nbsp;publish(java.lang.String&nbsp;topic,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3">MqttMessage</a>&nbsp;message)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></pre>
<div class="block">Publishes a message to a topic on the server.
Takes an <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttMessage</code></a> message and delivers it to the server at the
requested quality of service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - to deliver the message to, for example "finance/stock/ibm".</dd>
<dd><code>message</code> - to deliver to the server</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the publish to complete. The token
will be passed to any callback that has been set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></code> - when a problem occurs storing the message</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if value of QoS is not 0, 1 or 2.</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for other errors encountered while publishing the message.
For instance client not connected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>publish(String, MqttMessage, Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publish</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a>&nbsp;publish(java.lang.String&nbsp;topic,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3">MqttMessage</a>&nbsp;message,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></pre>
<div class="block">Publishes a message to a topic on the server.
<p>
Once this method has returned cleanly, the message has been accepted for publication by the
client and will be delivered on a background thread.
In the event the connection fails or the client stops. Messages will be delivered to the
requested quality of service once the connection is re-established to the server on condition that:
<ul>
<li>The connection is re-established with the same clientID
<li>The original connection was made with (@link MqttConnectOptions#setCleanSession(boolean)}
set to false
<li>The connection is re-established with (@link MqttConnectOptions#setCleanSession(boolean)}
set to false
<li>Depending when the failure occurs QoS 0 messages may not be delivered.
</ul>
</p>
<p>When building an application,
the design of the topic tree should take into account the following principles
of topic name syntax and semantics:</p>
<ul>
<li>A topic must be at least one character long.</li>
<li>Topic names are case sensitive. For example, <em>ACCOUNTS</em> and <em>Accounts</em> are
two different topics.</li>
<li>Topic names can include the space character. For example, <em>Accounts
payable</em> is a valid topic.</li>
<li>A leading "/" creates a distinct topic. For example, <em>/finance</em> is
different from <em>finance</em>. <em>/finance</em> matches "+/+" and "/+", but
not "+".</li>
<li>Do not include the null character (Unicode <samp class="codeph">\x0000</samp>) in
any topic.</li>
</ul>
<p>The following principles apply to the construction and content of a topic
tree:</p>
<ul>
<li>The length is limited to 64k but within that there are no limits to the
number of levels in a topic tree.</li>
<li>There can be any number of root nodes; that is, there can be any number
of topic trees.</li>
</ul>
</p>
<p>The method returns control before the publish completes. Completion can
be tracked by:
<ul>
<li>Setting an <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>setCallback(MqttCallback)</code></a> where the
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html#deliveryComplete-org.eclipse.paho.client.mqttv3.IMqttDeliveryToken-"><code>MqttCallback.deliveryComplete(IMqttDeliveryToken)</code></a>
method will be called.</li>
<li>Waiting on the returned token <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html#waitForCompletion--"><code>MqttToken.waitForCompletion()</code></a> or</li>
<li>Passing in a callback <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttActionListener</code></a> to this method</li>
</ul>
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - to deliver the message to, for example "finance/stock/ibm".</dd>
<dd><code>message</code> - to deliver to the server</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when message delivery
has completed to the requested quality of service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the publish to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttPersistenceException.html" title="class in org.eclipse.paho.client.mqttv3">MqttPersistenceException</a></code> - when a problem occurs storing the message</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if value of QoS is not 0, 1 or 2.</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - for other errors encountered while publishing the message.
For instance client not connected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttMessage.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttMessage</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String&nbsp;topicFilter,
int&nbsp;qos)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to subscribe to, which can include wildcards.</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-int-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String&nbsp;topicFilter,
int&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to subscribe to, which can include wildcards.</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when subscribe
has completed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String:A-int:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to multiple topics, each of which may include wildcards.
<p>Provides an optimized way to subscribe to multiple topics compared to
subscribing to each one individually.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - one or more topics to subscribe to, which can include wildcards</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribes to multiple topics, each of which may include wildcards.
<p>Provides an optimized way to subscribe to multiple topics compared to
subscribing to each one individually.</p>
<p>The <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>setCallback(MqttCallback)</code></a> method
should be called before this method, otherwise any received messages
will be discarded.
</p>
<p>
If (@link MqttConnectOptions#setCleanSession(boolean)} was set to true
when when connecting to the server then the subscription remains in place
until either:
<ul>
<li>The client disconnects</li>
<li>An unsubscribe method is called to un-subscribe the topic</li>
</li>
</p>
<p>
If (@link MqttConnectOptions#setCleanSession(boolean)} was set to false
when connecting to the server then the subscription remains in place
until either:
<ul>
<li>An unsubscribe method is called to unsubscribe the topic</li>
<li>The next time the client connects with cleanSession set to true</ul>
</li>
With cleanSession set to false the MQTT server will store messages on
behalf of the client when the client is not connected. The next time the
client connects with the <bold>same client ID</bold> the server will
deliver the stored messages to the client.
</p>
<p>The "topic filter" string used when subscribing
may contain special characters, which allow you to subscribe to multiple topics
at once.</p>
<p>The topic level separator is used to introduce structure into the topic, and
can therefore be specified within the topic for that purpose. The multi-level
wildcard and single-level wildcard can be used for subscriptions, but they
cannot be used within a topic by the publisher of a message.
<dl>
<dt>Topic level separator</dt>
<dd>The forward slash (/) is used to separate each level within
a topic tree and provide a hierarchical structure to the topic space. The
use of the topic level separator is significant when the two wildcard characters
are encountered in topics specified by subscribers.</dd>
<dt>Multi-level wildcard</dt>
<dd><p>The number sign (#) is a wildcard character that matches
any number of levels within a topic. For example, if you subscribe to
<span><span class="filepath">finance/stock/ibm/#</span></span>, you receive
messages on these topics:
<pre> finance/stock/ibm<br /> finance/stock/ibm/closingprice<br /> finance/stock/ibm/currentprice</pre>
</p>
<p>The multi-level wildcard
can represent zero or more levels. Therefore, <em>finance/#</em> can also match
the singular <em>finance</em>, where <em>#</em> represents zero levels. The topic
level separator is meaningless in this context, because there are no levels
to separate.</p>
<p>The <span>multi-level</span> wildcard can
be specified only on its own or next to the topic level separator character.
Therefore, <em>#</em> and <em>finance/#</em> are both valid, but <em>finance#</em> is
not valid. <span>The multi-level wildcard must be the last character
used within the topic tree. For example, <em>finance/#</em> is valid but
<em>finance/#/closingprice</em> is not valid.</span></p></dd>
<dt>Single-level wildcard</dt>
<dd><p>The plus sign (+) is a wildcard character that matches only one topic
level. For example, <em>finance/stock/+</em> matches
<em>finance/stock/ibm</em> and <em>finance/stock/xyz</em>,
but not <em>finance/stock/ibm/closingprice</em>. Also, because the single-level
wildcard matches only a single level, <em>finance/+</em> does not match <em>finance</em>.</p>
<p>Use
the single-level wildcard at any level in the topic tree, and in conjunction
with the multilevel wildcard. Specify the single-level wildcard next to the
topic level separator, except when it is specified on its own. Therefore,
<em>+</em> and <em>finance/+</em> are both valid, but <em>finance+</em> is
not valid. <span>The single-level wildcard can be used at the end of the
topic tree or within the topic tree.
For example, <em>finance/+</em> and <em>finance/+/ibm</em> are both valid.</span></p>
</dd>
</dl>
</p>
<p>The method returns control before the subscribe completes. Completion can
be tracked by:
<ul>
<li>Waiting on the supplied token <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html#waitForCompletion--"><code>MqttToken.waitForCompletion()</code></a> or</li>
<li>Passing in a callback <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttActionListener</code></a> to this method</li>
</ul>
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - one or more topics to subscribe to, which can include wildcards</dd>
<dd><code>qos</code> - the maximum quality of service to subscribe each topic at.Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when subscribe
has completed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the two supplied arrays are not the same size.</dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-int-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String&nbsp;topicFilter,
int&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>&nbsp;messageListener)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to subscribe to, which can include wildcards.</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when subscribe
has completed</dd>
<dd><code>messageListener</code> - a callback to handle incoming messages</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-int-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String&nbsp;topicFilter,
int&nbsp;qos,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>&nbsp;messageListener)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to subscribe to, which can include wildcards.</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dd><code>messageListener</code> - a callback to handle incoming messages</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String:A-int:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>[]&nbsp;messageListeners)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to multiple topics, each of which may include wildcards.
<p>Provides an optimized way to subscribe to multiple topics compared to
subscribing to each one individually.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - one or more topics to subscribe to, which can include wildcards</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dd><code>messageListeners</code> - one or more callbacks to handle incoming messages</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;subscribe(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttMessageListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttMessageListener</a>[]&nbsp;messageListeners)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Subscribe to multiple topics, each of which may include wildcards.
<p>Provides an optimized way to subscribe to multiple topics compared to
subscribing to each one individually.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - one or more topics to subscribe to, which can include wildcards</dd>
<dd><code>qos</code> - the maximum quality of service at which to subscribe. Messages
published at a lower quality of service will be received at the published
QoS. Messages published at a higher quality of service will be received using
the QoS specified on the subscribe.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when subscribe
has completed</dd>
<dd><code>messageListeners</code> - one or more callbacks to handle incoming messages</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the subscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error registering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#subscribe-java.lang.String:A-int:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>subscribe(String[], int[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsubscribe-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsubscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;unsubscribe(java.lang.String&nbsp;topicFilter)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Requests the server unsubscribe the client from a topic.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to unsubscribe from. It must match a topicFilter
specified on an earlier subscribe.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the unsubscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error unregistering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>unsubscribe(String[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsubscribe-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsubscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;unsubscribe(java.lang.String[]&nbsp;topicFilters)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Requests the server unsubscribe the client from one or more topics.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - one or more topics to unsubscribe from. Each topicFilter
must match one specified on an earlier subscribe. *</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the unsubscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error unregistering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>unsubscribe(String[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsubscribe-java.lang.String-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsubscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;unsubscribe(java.lang.String&nbsp;topicFilter,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Requests the server unsubscribe the client from a topics.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to unsubscribe from. It must match a topicFilter
specified on an earlier subscribe.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when unsubscribe
has completed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the unsubscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error unregistering the subscription.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html#unsubscribe-java.lang.String:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-"><code>unsubscribe(String[], Object, IMqttActionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="unsubscribe-java.lang.String:A-java.lang.Object-org.eclipse.paho.client.mqttv3.IMqttActionListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsubscribe</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;unsubscribe(java.lang.String[]&nbsp;topicFilters,
java.lang.Object&nbsp;userContext,
<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttActionListener</a>&nbsp;callback)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Requests the server unsubscribe the client from one or more topics.
<p>
Unsubcribing is the opposite of subscribing. When the server receives the
unsubscribe request it looks to see if it can find a matching subscription for the
client and then removes it. After this point the server will send no more
messages to the client for this subscription.
</p>
<p>The topic(s) specified on the unsubscribe must match the topic(s)
specified in the original subscribe request for the unsubscribe to succeed
</p>
<p>The method returns control before the unsubscribe completes. Completion can
be tracked by:
<ul>
<li>Waiting on the returned token <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html#waitForCompletion--"><code>MqttToken.waitForCompletion()</code></a> or</li>
<li>Passing in a callback <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttActionListener</code></a> to this method</li>
</ul>
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - one or more topics to unsubscribe from. Each topicFilter
must match one specified on an earlier subscribe.</dd>
<dd><code>userContext</code> - optional object used to pass context to the callback. Use
null if not required.</dd>
<dd><code>callback</code> - optional listener that will be notified when unsubscribe
has completed</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>token used to track and wait for the unsubscribe to complete. The token
will be passed to callback methods if set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if there was an error unregistering the subscription.</dd>
</dl>
</li>
</ul>
<a name="setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallback</h4>
<pre>void&nbsp;setCallback(<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3">MqttCallback</a>&nbsp;callback)</pre>
<div class="block">Sets a callback listener to use for events that happen asynchronously.
<p>There are a number of events that the listener will be notified about.
These include:
<ul>
<li>A new message has arrived and is ready to be processed</li>
<li>The connection to the server has been lost</li>
<li>Delivery of a message to the server has completed</li>
</ul>
</p>
<p>Other events that track the progress of an individual operation such
as connect and subscribe can be tracked using the <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttToken.html" title="class in org.eclipse.paho.client.mqttv3"><code>MqttToken</code></a> returned from
each non-blocking method or using setting a <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttActionListener</code></a> on the
non-blocking method.<p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - which will be invoked for certain asynchronous events</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttCallback</code></a></dd>
</dl>
</li>
</ul>
<a name="getPendingDeliveryTokens--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPendingDeliveryTokens</h4>
<pre><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttDeliveryToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttDeliveryToken</a>[]&nbsp;getPendingDeliveryTokens()</pre>
<div class="block">Returns the delivery tokens for any outstanding publish operations.
<p>If a client has been restarted and there are messages that were in the
process of being delivered when the client stopped this method
returns a token for each in-flight message enabling the delivery to be tracked
Alternately the <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttCallback.html#deliveryComplete-org.eclipse.paho.client.mqttv3.IMqttDeliveryToken-"><code>MqttCallback.deliveryComplete(IMqttDeliveryToken)</code></a>
callback can be used to track the delivery of outstanding messages.
</p>
<p>If a client connects with cleanSession true then there will be no
delivery tokens as the cleanSession option deletes all earlier state.
For state to be remembered the client must connect with cleanSession
set to false</P></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>zero or more delivery tokens</dd>
</dl>
</li>
</ul>
<a name="setManualAcks-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setManualAcks</h4>
<pre>void&nbsp;setManualAcks(boolean&nbsp;manualAcks)</pre>
<div class="block">If manualAcks is set to true, then on completion of the messageArrived callback
the MQTT acknowledgements are not sent. You must call messageArrivedComplete
to send those acknowledgements. This allows finer control over when the acks are
sent. The default behaviour, when manualAcks is false, is to send the MQTT
acknowledgements automatically at the successful completion of the messageArrived
callback method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>manualAcks</code> - </dd>
</dl>
</li>
</ul>
<a name="messageArrivedComplete-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>messageArrivedComplete</h4>
<pre>void&nbsp;messageArrivedComplete(int&nbsp;messageId,
int&nbsp;qos)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Indicate that the application has completed processing the message with id messageId.
This will cause the MQTT acknowledgement to be sent to the server.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>messageId</code> - the MQTT message id to be acknowledged</dd>
<dd><code>qos</code> - the MQTT QoS of the message to be acknowledged</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code></dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Close the client
Releases all resource associated with the client. After the client has
been closed it cannot be reused. For instance attempts to connect will fail.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if the client is not disconnected.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IMqttAsyncClient.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttActionListener.html" title="interface in org.eclipse.paho.client.mqttv3"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/paho/client/mqttv3/IMqttAsyncClient.html" target="_top">Frames</a></li>
<li><a href="IMqttAsyncClient.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>