blob: 04a829ca27c2dc14a83d7cf2dd7ebb3ce479140a [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:14 BST 2016 -->
<title>MqttClient</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="MqttClient";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/MqttClient.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/MqttCallbackExtended.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/MqttClientPersistence.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/MqttClient.html" target="_top">Frames</a></li>
<li><a href="MqttClient.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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="Class MqttClient" class="title">Class MqttClient</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.paho.client.mqttv3.MqttClient</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">MqttClient</span>
extends java.lang.Object
implements <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></pre>
<div class="block">Lightweight client for talking to an MQTT server using methods that block
until an operation completes.
<p>This class implements the blocking <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttClient</code></a> client interface where all
actions block until they have completed (or timed out).
This implementation is compatible with all Java SE runtimes from 1.4.2 and up.
</p>
<p>An application can connect to an MQTT server using:
<ul>
<li>A plain TCP socket
<li>An secure SSL/TLS socket
</ul>
</p>
<p>To enable messages to be delivered even across network and client restarts
messages need to be safely stored until the message has been delivered at the requested
quality of service. A pluggable persistence mechanism is provided to store the messages.
</p>
<p>By default <a href="../../../../../org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.html" title="class in org.eclipse.paho.client.mqttv3.persist"><code>MqttDefaultFilePersistence</code></a> is used to store messages to a file.
If persistence is set to null then messages are stored in memory and hence can be lost
if the client, Java runtime or device shuts down.
</p>
<p>If connecting with <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setCleanSession-boolean-"><code>MqttConnectOptions.setCleanSession(boolean)</code></a> set to true it
is safe to use memory persistence as all state it cleared when a client disconnects. If
connecting with cleanSession set to false, to provide reliable message delivery
then a persistent message store should be used such as the default one. </p>
<p>The message store interface is pluggable. Different stores can be used by implementing
the <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClientPersistence.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttClientPersistence</code></a> interface and passing it to the clients constructor.
</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3"><code>IMqttClient</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-">MqttClient</a></span>(java.lang.String&nbsp;serverURI,
java.lang.String&nbsp;clientId)</code>
<div class="block">Create an MqttClient that can be used to communicate with an MQTT server.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-">MqttClient</a></span>(java.lang.String&nbsp;serverURI,
java.lang.String&nbsp;clientId,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClientPersistence.html" title="interface in org.eclipse.paho.client.mqttv3">MqttClientPersistence</a>&nbsp;persistence)</code>
<div class="block">Create an MqttClient that can be used to communicate with an MQTT server.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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/MqttClient.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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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 specified 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/MqttClient.html#connectWithResult-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">connectWithResult</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 specified options.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#disconnect--">disconnect</a></span>()</code>
<div class="block">Disconnects from the server.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#disconnect-long-">disconnect</a></span>(long&nbsp;quiesceTimeout)</code>
<div class="block">Disconnects from the server.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#disconnectForcibly--">disconnectForcibly</a></span>()</code>
<div class="block">Disconnects from the server forcibly to reset all the states.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i9" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#generateClientId--">generateClientId</a></span>()</code>
<div class="block">Returns a randomly generated client identifier based on the current user's login
name and the system time.</div>
</td>
</tr>
<tr id="i10" 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/MqttClient.html#getClientId--">getClientId</a></span>()</code>
<div class="block">Returns the client ID used by this client.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#getCurrentServerURI--">getCurrentServerURI</a></span>()</code>
<div class="block">Returns the currently connected Server URI
Implemented due to: https://bugs.eclipse.org/bugs/show_bug.cgi?id=481097
Where getServerURI only returns the URI that was provided in
MqttAsyncClient's constructor, getCurrentServerURI returns the URI of the
Server that the client is currently connected to.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/util/Debug.html" title="class in org.eclipse.paho.client.mqttv3.util">Debug</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#getDebug--">getDebug</a></span>()</code>
<div class="block">Return a debug object that can be used to help solve problems.</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/MqttClient.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/MqttClient.html#getServerURI--">getServerURI</a></span>()</code>
<div class="block">Returns the address of the server used by this client, as a URI.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#getTimeToWait--">getTimeToWait</a></span>()</code>
<div class="block">Return the maximum time to wait for an action to complete.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttTopic.html" title="class in org.eclipse.paho.client.mqttv3">MqttTopic</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#getTopic-java.lang.String-">getTopic</a></span>(java.lang.String&nbsp;topic)</code>
<div class="block">Get a topic object which can be used to publish messages.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#isConnected--">isConnected</a></span>()</code>
<div class="block">Determines if this client is currently connected to the server.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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 and return once it is delivered.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#reconnect--">reconnect</a></span>()</code>&nbsp;</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/MqttClient.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 the callback listener to use for events that happen asynchronously.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#setTimeToWait-long-">setTimeToWait</a></span>(long&nbsp;timeToWaitInMillis)</code>
<div class="block">Set the maximum time to wait for an action to complete.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String-">subscribe</a></span>(java.lang.String&nbsp;topicFilter)</code>
<div class="block">Subscribe to a topic, which may include wildcards using a QoS of 1.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String:A-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters)</code>
<div class="block">Subscribes to a one or more topics, which may include wildcards using a QoS of 1.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
<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">Subscribes to a one or more topics, which may include wildcards using a QoS of 1.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String:A-int:A-">subscribe</a></span>(java.lang.String[]&nbsp;topicFilters,
int[]&nbsp;qos)</code>
<div class="block">Subscribes to multiple topics, each of which may include wildcards.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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">Subscribes to multiple topics, each of which may include wildcards.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#subscribe-java.lang.String-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">subscribe</a></span>(java.lang.String&nbsp;topicFilter,
<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 using a QoS of 1.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.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>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="MqttClient-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MqttClient</h4>
<pre>public&nbsp;MqttClient(java.lang.String&nbsp;serverURI,
java.lang.String&nbsp;clientId)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Create an MqttClient that can be used to communicate with an MQTT server.
<p>
The address of a server can be specified on the constructor. Alternatively
a list containing one or more servers can be specified using the
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setServerURIs-java.lang.String:A-"><code>setServerURIs</code></a> method
on MqttConnectOptions.
<p>The <code>serverURI</code> parameter is typically used with the
the <code>clientId</code> parameter to form a key. The key
is used to store and reference messages while they are being delivered.
Hence the serverURI specified on the constructor must still be specified even if a list
of servers is specified on an MqttConnectOptions object.
The serverURI on the constructor must remain the same across
restarts of the client for delivery of messages to be maintained from a given
client to a given server or set of servers.
<p>The address of the server to connect to is specified as a URI. Two types of
connection are supported <code>tcp://</code> for a TCP connection and
<code>ssl://</code> for a TCP connection secured by SSL/TLS.
For example:
<ul>
<li><code>tcp://localhost:1883</code></li>
<li><code>ssl://localhost:8883</code></li>
</ul>
If the port is not specified, it will
default to 1883 for <code>tcp://</code>" URIs, and 8883 for <code>ssl://</code> URIs.
</p>
<p>
A client identifier <code>clientId</code> must be specified and be less that 65535 characters.
It must be unique across all clients connecting to the same
server. The clientId is used by the server to store data related to the client,
hence it is important that the clientId remain the same when connecting to a server
if durable subscriptions or reliable messaging are required.
<p>A convenience method is provided to generate a random client id that
should satisfy this criteria - <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#generateClientId--"><code>generateClientId()</code></a>. As the client identifier
is used by the server to identify a client when it reconnects, the client must use the
same identifier between connections if durable subscriptions or reliable
delivery of messages is required.
</p>
<p>
In Java SE, SSL can be configured in one of several ways, which the
client will use in the following order:
</p>
<ul>
<li><strong>Supplying an <code>SSLSocketFactory</code></strong> - applications can
use <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setSocketFactory-javax.net.SocketFactory-"><code>MqttConnectOptions.setSocketFactory(SocketFactory)</code></a> to supply
a factory with the appropriate SSL settings.</li>
<li><strong>SSL Properties</strong> - applications can supply SSL settings as a
simple Java Properties using <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setSSLProperties-java.util.Properties-"><code>MqttConnectOptions.setSSLProperties(Properties)</code></a>.</li>
<li><strong>Use JVM settings</strong> - There are a number of standard
Java system properties that can be used to configure key and trust stores.</li>
</ul>
<p>In Java ME, the platform settings are used for SSL connections.</p>
<p>An instance of the default persistence mechanism <a href="../../../../../org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.html" title="class in org.eclipse.paho.client.mqttv3.persist"><code>MqttDefaultFilePersistence</code></a>
is used by the client. To specify a different persistence mechanism or to turn
off persistence, use the <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-"><code>MqttClient(String, String, MqttClientPersistence)</code></a>
constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serverURI</code> - the address of the server to connect to, specified as a URI. Can be overridden using
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setServerURIs-java.lang.String:A-"><code>MqttConnectOptions.setServerURIs(String[])</code></a></dd>
<dd><code>clientId</code> - a client identifier that is unique on the server being connected to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the URI does not start with
"tcp://", "ssl://" or "local://".</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the clientId is null or is greater than 65535 characters in length</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if any other problem was encountered</dd>
</dl>
</li>
</ul>
<a name="MqttClient-java.lang.String-java.lang.String-org.eclipse.paho.client.mqttv3.MqttClientPersistence-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MqttClient</h4>
<pre>public&nbsp;MqttClient(java.lang.String&nbsp;serverURI,
java.lang.String&nbsp;clientId,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClientPersistence.html" title="interface in org.eclipse.paho.client.mqttv3">MqttClientPersistence</a>&nbsp;persistence)
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block">Create an MqttClient that can be used to communicate with an MQTT server.
<p>
The address of a server can be specified on the constructor. Alternatively
a list containing one or more servers can be specified using the
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setServerURIs-java.lang.String:A-"><code>setServerURIs</code></a> method
on MqttConnectOptions.
<p>The <code>serverURI</code> parameter is typically used with the
the <code>clientId</code> parameter to form a key. The key
is used to store and reference messages while they are being delivered.
Hence the serverURI specified on the constructor must still be specified even if a list
of servers is specified on an MqttConnectOptions object.
The serverURI on the constructor must remain the same across
restarts of the client for delivery of messages to be maintained from a given
client to a given server or set of servers.
<p>The address of the server to connect to is specified as a URI. Two types of
connection are supported <code>tcp://</code> for a TCP connection and
<code>ssl://</code> for a TCP connection secured by SSL/TLS.
For example:
<ul>
<li><code>tcp://localhost:1883</code></li>
<li><code>ssl://localhost:8883</code></li>
</ul>
If the port is not specified, it will
default to 1883 for <code>tcp://</code>" URIs, and 8883 for <code>ssl://</code> URIs.
</p>
<p>
A client identifier <code>clientId</code> must be specified and be less that 65535 characters.
It must be unique across all clients connecting to the same
server. The clientId is used by the server to store data related to the client,
hence it is important that the clientId remain the same when connecting to a server
if durable subscriptions or reliable messaging are required.
<p>A convenience method is provided to generate a random client id that
should satisfy this criteria - <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#generateClientId--"><code>generateClientId()</code></a>. As the client identifier
is used by the server to identify a client when it reconnects, the client must use the
same identifier between connections if durable subscriptions or reliable
delivery of messages is required.
</p>
<p>
In Java SE, SSL can be configured in one of several ways, which the
client will use in the following order:
</p>
<ul>
<li><strong>Supplying an <code>SSLSocketFactory</code></strong> - applications can
use <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setSocketFactory-javax.net.SocketFactory-"><code>MqttConnectOptions.setSocketFactory(SocketFactory)</code></a> to supply
a factory with the appropriate SSL settings.</li>
<li><strong>SSL Properties</strong> - applications can supply SSL settings as a
simple Java Properties using <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setSSLProperties-java.util.Properties-"><code>MqttConnectOptions.setSSLProperties(Properties)</code></a>.</li>
<li><strong>Use JVM settings</strong> - There are a number of standard
Java system properties that can be used to configure key and trust stores.</li>
</ul>
<p>In Java ME, the platform settings are used for SSL connections.</p>
<p>
A persistence mechanism is used to enable reliable messaging.
For messages sent at qualities of service (QoS) 1 or 2 to be reliably delivered,
messages must be stored (on both the client and server) until the delivery of the message
is complete. If messages are not safely stored when being delivered then
a failure in the client or server can result in lost messages. A pluggable
persistence mechanism is supported via the <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClientPersistence.html" title="interface in org.eclipse.paho.client.mqttv3"><code>MqttClientPersistence</code></a>
interface. An implementer of this interface that safely stores messages
must be specified in order for delivery of messages to be reliable. In
addition <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setCleanSession-boolean-"><code>MqttConnectOptions.setCleanSession(boolean)</code></a> must be set
to false. In the event that only QoS 0 messages are sent or received or
cleanSession is set to true then a safe store is not needed.
</p>
<p>An implementation of file-based persistence is provided in
class <a href="../../../../../org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.html" title="class in org.eclipse.paho.client.mqttv3.persist"><code>MqttDefaultFilePersistence</code></a> which will work in all Java SE based
systems. If no persistence is needed, the persistence parameter
can be explicitly set to <code>null</code>.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serverURI</code> - the address of the server to connect to, specified as a URI. Can be overridden using
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setServerURIs-java.lang.String:A-"><code>MqttConnectOptions.setServerURIs(String[])</code></a></dd>
<dd><code>clientId</code> - a client identifier that is unique on the server being connected to</dd>
<dd><code>persistence</code> - the persistence class to use to store in-flight message. If null then the
default persistence mechanism is used</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the URI does not start with
"tcp://", "ssl://" or "local://"</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if the clientId is null or is greater than 65535 characters in length</dd>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></code> - if any other problem was encountered</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ 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>public&nbsp;void&nbsp;connect()
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#connect--">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#connect--">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></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> - when the server rejects the connect for security
reasons</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/IMqttClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-"><code>IMqttClient.connect(MqttConnectOptions)</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>public&nbsp;void&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/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">IMqttClient</a></code></span></div>
<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/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>IMqttClient.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>This is a blocking method that returns once connect completes</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#connect-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>options</code> - a set of connection parameters that override the defaults.</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> - when the server rejects the connect for security
reasons</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="connectWithResult-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>connectWithResult</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttToken.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttToken</a>&nbsp;connectWithResult(<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/MqttSecurityException.html" title="class in org.eclipse.paho.client.mqttv3">MqttSecurityException</a>,
<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#connectWithResult-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">IMqttClient</a></code></span></div>
<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/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>IMqttClient.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>This is a blocking method that returns once connect completes</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#connectWithResult-org.eclipse.paho.client.mqttv3.MqttConnectOptions-">connectWithResult</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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>the MqttToken used for the call. Can be used to obtain the session present flag</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> - when the server rejects the connect for security
reasons</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>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnect--">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnect--">disconnect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></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>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnect-long-"><code>IMqttClient.disconnect(long)</code></a></dd>
</dl>
</li>
</ul>
<a name="disconnect-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnect</h4>
<pre>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnect-long-">IMqttClient</a></code></span></div>
<div class="block">Disconnects from the server.
<p>
The client will wait for all <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 example, it will
wait for the QoS 2 flows from earlier publications to complete. 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 is a blocking method that returns once disconnect completes</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnect-long-">disconnect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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="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 a problem is encountered while disconnecting</dd>
</dl>
</li>
</ul>
<a name="disconnectForcibly--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnectForcibly</h4>
<pre>public&nbsp;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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnectForcibly--">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnectForcibly--">disconnectForcibly</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></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>
</dl>
</li>
</ul>
<a name="disconnectForcibly-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnectForcibly</h4>
<pre>public&nbsp;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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnectForcibly-long-">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnectForcibly-long-">disconnectForcibly</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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>
</dl>
</li>
</ul>
<a name="disconnectForcibly-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disconnectForcibly</h4>
<pre>public&nbsp;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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnectForcibly-long-long-">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#disconnectForcibly-long-long-">disconnectForcibly</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre>public&nbsp;void&nbsp;subscribe(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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-">IMqttClient</a></code></span></div>
<div class="block">Subscribe to a topic, which may include wildcards using a QoS of 1.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to subscribe to, which can include wildcards.</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/IMqttClient.html#subscribe-java.lang.String:A-int:A-"><code>IMqttClient.subscribe(String[], int[])</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre>public&nbsp;void&nbsp;subscribe(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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-">IMqttClient</a></code></span></div>
<div class="block">Subscribes to a one or more topics, which may include wildcards using a QoS of 1.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - the topic to subscribe to, which can include wildcards.</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/IMqttClient.html#subscribe-java.lang.String:A-int:A-"><code>IMqttClient.subscribe(String[], int[])</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-int-">IMqttClient</a></code></span></div>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-int-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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="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/IMqttClient.html#subscribe-java.lang.String:A-int:A-"><code>IMqttClient.subscribe(String[], int[])</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>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-int:A-">IMqttClient</a></code></span></div>
<div class="block">Subscribes to multiple topics, each of which may include wildcards.
<p>The <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>IMqttClient.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 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 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>This is a blocking method that returns once subscribe completes</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-int:A-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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>
<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>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre>public&nbsp;void&nbsp;subscribe(java.lang.String&nbsp;topicFilter,
<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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">IMqttClient</a></code></span></div>
<div class="block">Subscribe to a topic, which may include wildcards using a QoS of 1.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to subscribe to, which can include wildcards.</dd>
<dd><code>messageListener</code> - a callback to handle incoming messages</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/IMqttClient.html#subscribe-java.lang.String:A-int:A-"><code>IMqttClient.subscribe(String[], int[])</code></a></dd>
</dl>
</li>
</ul>
<a name="subscribe-java.lang.String:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subscribe</h4>
<pre>public&nbsp;void&nbsp;subscribe(java.lang.String[]&nbsp;topicFilters,
<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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">IMqttClient</a></code></span></div>
<div class="block">Subscribes to a one or more topics, which may include wildcards using a QoS of 1.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilters</code> - the topic to subscribe to, which can include wildcards.</dd>
<dd><code>messageListeners</code> - one or more callbacks to handle incoming messages</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/IMqttClient.html#subscribe-java.lang.String:A-int:A-"><code>IMqttClient.subscribe(String[], int[])</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>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-int-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">IMqttClient</a></code></span></div>
<div class="block">Subscribe to a topic, which may include wildcards.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String-int-org.eclipse.paho.client.mqttv3.IMqttMessageListener-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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="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/IMqttClient.html#subscribe-java.lang.String:A-int:A-"><code>IMqttClient.subscribe(String[], int[])</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>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-int:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">IMqttClient</a></code></span></div>
<div class="block">Subscribes to multiple topics, each of which may include wildcards.
<p>The <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>IMqttClient.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 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 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>This is a blocking method that returns once subscribe completes</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#subscribe-java.lang.String:A-int:A-org.eclipse.paho.client.mqttv3.IMqttMessageListener:A-">subscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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>messageListeners</code> - one or more callbacks to handle incoming messages</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>
</dl>
</li>
</ul>
<a name="unsubscribe-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsubscribe</h4>
<pre>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#unsubscribe-java.lang.String-">IMqttClient</a></code></span></div>
<div class="block">Requests the server unsubscribe the client from a topic.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#unsubscribe-java.lang.String-">unsubscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topicFilter</code> - the topic to unsubscribe from. It must match a topicFilter
specified on the subscribe.</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/IMqttClient.html#unsubscribe-java.lang.String:A-"><code>IMqttClient.unsubscribe(String[])</code></a></dd>
</dl>
</li>
</ul>
<a name="unsubscribe-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unsubscribe</h4>
<pre>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#unsubscribe-java.lang.String:A-">IMqttClient</a></code></span></div>
<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 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 subscribe to succeed
</p>
<p>This is a blocking method that returns once unsubscribe completes</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#unsubscribe-java.lang.String:A-">unsubscribe</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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 a subscribe</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="publish-java.lang.String-byte:A-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publish</h4>
<pre>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#publish-java.lang.String-byte:A-int-boolean-">IMqttClient</a></code></span></div>
<div class="block">Publishes a message to a topic on the server and return once it is delivered.
<p>This is 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. All other values in the
message will be set to the defaults.
</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#publish-java.lang.String-byte:A-int-boolean-">publish</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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="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 with storing the message</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/IMqttClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-"><code>IMqttClient.publish(String, MqttMessage)</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>public&nbsp;void&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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-">IMqttClient</a></code></span></div>
<div class="block">Publishes a message to a topic on the server.
<p>
Delivers a message to the server at the requested quality of service and returns control
once the message has been delivered. In the event the connection fails or the client
stops, any messages that are in the process of being delivered will be delivered once
a 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
</ul>
</p>
<p>In the event that the connection breaks or the client stops it is still possible to determine
when the delivery of the message completes. Prior to re-establishing the connection to the server:
<ul>
<li>Register a <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-"><code>IMqttClient.setCallback(MqttCallback)</code></a> callback on the client and the delivery complete
callback will be notified once a delivery of a message completes
<li>or call <a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getPendingDeliveryTokens--"><code>IMqttClient.getPendingDeliveryTokens()</code></a> which will return a token for each message that
is in-flight. The token can be used to wait for delivery to complete.
</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>This is a blocking method that returns once publish completes</p> *</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-">publish</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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 delivery to the server</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 with storing the message</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>
</dl>
</li>
</ul>
<a name="setTimeToWait-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeToWait</h4>
<pre>public&nbsp;void&nbsp;setTimeToWait(long&nbsp;timeToWaitInMillis)
throws java.lang.IllegalArgumentException</pre>
<div class="block">Set the maximum time to wait for an action to complete.
<p>Set the maximum time to wait for an action to complete before
returning control to the invoking application. Control is returned
when:
<ul>
<li>the action completes
<li>or when the timeout if exceeded
<li>or when the client is disconnect/shutdown
<ul>
The default value is -1 which means the action will not timeout.
In the event of a timeout the action carries on running in the
background until it completes. The timeout is used on methods that
block while the action is in progress.
</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeToWaitInMillis</code> - before the action times out. A value or 0 or -1 will wait until
the action finishes and not timeout.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code></dd>
</dl>
</li>
</ul>
<a name="getTimeToWait--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimeToWait</h4>
<pre>public&nbsp;long&nbsp;getTimeToWait()</pre>
<div class="block">Return the maximum time to wait for an action to complete.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#setTimeToWait-long-"><code>setTimeToWait(long)</code></a></dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#close--">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></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 the client is not disconnected.</dd>
</dl>
</li>
</ul>
<a name="getClientId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClientId</h4>
<pre>public&nbsp;java.lang.String&nbsp;getClientId()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getClientId--">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getClientId--">getClientId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the client ID used by this client.</dd>
</dl>
</li>
</ul>
<a name="getPendingDeliveryTokens--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPendingDeliveryTokens</h4>
<pre>public&nbsp;<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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getPendingDeliveryTokens--">IMqttClient</a></code></span></div>
<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 will
return a token for each 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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getPendingDeliveryTokens--">getPendingDeliveryTokens</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>zero or more delivery tokens</dd>
</dl>
</li>
</ul>
<a name="getServerURI--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerURI</h4>
<pre>public&nbsp;java.lang.String&nbsp;getServerURI()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getServerURI--">IMqttClient</a></code></span></div>
<div class="block">Returns the address of the server used by this client, as a URI.
<p>The format is the same as specified on the constructor.
</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getServerURI--">getServerURI</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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="getCurrentServerURI--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentServerURI</h4>
<pre>public&nbsp;java.lang.String&nbsp;getCurrentServerURI()</pre>
<div class="block">Returns the currently connected Server URI
Implemented due to: https://bugs.eclipse.org/bugs/show_bug.cgi?id=481097
Where getServerURI only returns the URI that was provided in
MqttAsyncClient's constructor, getCurrentServerURI returns the URI of the
Server that the client is currently connected to. This would be different in scenarios
where multiple server URIs have been provided to the MqttConnectOptions.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the currently connected server URI</dd>
</dl>
</li>
</ul>
<a name="getTopic-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTopic</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/paho/client/mqttv3/MqttTopic.html" title="class in org.eclipse.paho.client.mqttv3">MqttTopic</a>&nbsp;getTopic(java.lang.String&nbsp;topic)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getTopic-java.lang.String-">IMqttClient</a></code></span></div>
<div class="block">Get a topic object which can be used to publish messages.
<p>An alternative method that should be used in preference to this one when publishing a message is:
<ul>
<li><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttClient.html#publish-java.lang.String-org.eclipse.paho.client.mqttv3.MqttMessage-"><code>publish(String, MqttMessage)</code></a> to publish a message in a blocking manner
<li>or use publish methods on the non-blocking client like <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>IMqttAsyncClient.publish(String, MqttMessage, Object, IMqttActionListener)</code></a>
</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></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#getTopic-java.lang.String-">getTopic</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topic</code> - the topic to use, for example "finance/stock/ibm".</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an MqttTopic object, which can be used to publish messages to
the topic.</dd>
</dl>
</li>
</ul>
<a name="isConnected--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isConnected</h4>
<pre>public&nbsp;boolean&nbsp;isConnected()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#isConnected--">IMqttClient</a></code></span></div>
<div class="block">Determines if this client is currently connected to the server.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#isConnected--">isConnected</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if connected, <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
<a name="setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCallback</h4>
<pre>public&nbsp;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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-">IMqttClient</a></code></span></div>
<div class="block">Sets the callback listener to use for events that happen asynchronously.
<p>There are a number of events that 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> passed to the
operation<p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setCallback-org.eclipse.paho.client.mqttv3.MqttCallback-">setCallback</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the class to callback when for events related to the client</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="setManualAcks-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setManualAcks</h4>
<pre>public&nbsp;void&nbsp;setManualAcks(boolean&nbsp;manualAcks)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setManualAcks-boolean-">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#setManualAcks-boolean-">setManualAcks</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
</dl>
</li>
</ul>
<a name="messageArrivedComplete-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>messageArrivedComplete</h4>
<pre>public&nbsp;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"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#messageArrivedComplete-int-int-">IMqttClient</a></code></span></div>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html#messageArrivedComplete-int-int-">messageArrivedComplete</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/eclipse/paho/client/mqttv3/IMqttClient.html" title="interface in org.eclipse.paho.client.mqttv3">IMqttClient</a></code></dd>
<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="generateClientId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateClientId</h4>
<pre>public static&nbsp;java.lang.String&nbsp;generateClientId()</pre>
<div class="block">Returns a randomly generated client identifier based on the current user's login
name and the system time.
<p>When cleanSession is set to false, an application must ensure it uses the
same client identifier when it reconnects to the server to resume state and maintain
assured message delivery.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a generated client identifier</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/paho/client/mqttv3/MqttConnectOptions.html#setCleanSession-boolean-"><code>MqttConnectOptions.setCleanSession(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="reconnect--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reconnect</h4>
<pre>public&nbsp;void&nbsp;reconnect()
throws <a href="../../../../../org/eclipse/paho/client/mqttv3/MqttException.html" title="class in org.eclipse.paho.client.mqttv3">MqttException</a></pre>
<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></dd>
</dl>
</li>
</ul>
<a name="getDebug--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getDebug</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/paho/client/mqttv3/util/Debug.html" title="class in org.eclipse.paho.client.mqttv3.util">Debug</a>&nbsp;getDebug()</pre>
<div class="block">Return a debug object that can be used to help solve problems.</div>
</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/MqttClient.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/MqttCallbackExtended.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/MqttClientPersistence.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/MqttClient.html" target="_top">Frames</a></li>
<li><a href="MqttClient.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><a href="#constructor.summary">Constr</a>&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><a href="#constructor.detail">Constr</a>&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>