My paho-mqtt service is unable to reconnect to broker in case connection is lost.
On connection lost I pinged both broker from the Android Client using adb shell and Android device from the server (Windows 10) hosting mosquito broker.
I connected to network using LAN via my Raspberry Pi 3B having deployed Android Things (latest version). The LAN network is quite stable. For Paho MQTT I am using latest version.
I have noticed that my MQTT connection is lost at random.
fun connect(context: Context) {
connectOptions.keepAliveInterval=30//seconds
connectOptions.mqttVersion = MqttConnectOptions.MQTT_VERSION_3_1_1
connectOptions.isAutomaticReconnect = true
connectOptions.isCleanSession = false
connectOptions.setWill(Global.HmiSrNo + "_out", "Disconnected".toByteArray(), 2, false)
mqttAndroidClient = MqttAndroidClient(context, serverUri, clientId)
try {
val token = mqttAndroidClient.connect(connectOptions)
token.actionCallback = object : IMqttActionListener {
override fun onSuccess(asyncActionToken: IMqttToken)
{
subscribe(context)
automicLight.set(true)
issnackbarshown = true
if(Global.connectivitylost)
wantToCloseDialog = true
}
override fun onFailure(asyncActionToken: IMqttToken, exception: Throwable) {
//connectionStatus = false
Log.i("Connection", "failure")
// Give your callback on connection failure here
exception.printStackTrace()
}
}
} catch (e: MqttException) {
// Give your callback on connection failure here
e.printStackTrace()
}
}
Build.Grade
<service android:name="org.eclipse.paho.android.service.MqttService" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
repositories {
maven {
url "https://repo.eclipse.org/content/repositories/paho-releases/"
}
}