Hello ,
I am connecting MQTT broker and App is connecting as expected.
But when I stop and again Start MQTT broker, App is not able to connect Automatically. I am getting error while RE-connecting MQTT broker......
I am following the below link from @Erel....
https://www.b4x.com/android/forum/threads/b4x-mqtt-connect-reconnect.80815/
Below is my code block for your reference....
Code at Starter Service:
------------------------------------
From Activity_Main
Error I am facing as below :
please advice.....
I am connecting MQTT broker and App is connecting as expected.
But when I stop and again Start MQTT broker, App is not able to connect Automatically. I am getting error while RE-connecting MQTT broker......
I am following the below link from @Erel....
https://www.b4x.com/android/forum/threads/b4x-mqtt-connect-reconnect.80815/
Below is my code block for your reference....
Code at Starter Service:
------------------------------------
B4X:
Sub ConnectAndReconnect
If mqtt.IsInitialized Then mqtt.Close
mqtt.Initialize("mqtt", serverURI, Rnd(0, 999999999) & DateTime.Now)
Dim mo As MqttConnectOptions
mo.Initialize("xxx", "xxx")
Log("Trying to connect")
mqtt.Connect2(mo)
Wait For mqtt_Connected (Success As Boolean)
If Success Then
Log("Mqtt connected")
mqttConnected=True
Else
mqttConnected=False
Log("Error connecting.")
End If
End Sub
From Activity_Main
B4X:
If Starter.mqtt.Connected And onlineStatus=True Then
Try
Starter.mqtt.Publish("driverloc_" & qrActivity.sessionId,bc.StringToBytes(strLoc ,"UTF8"))
Catch
Log("MQTT / " & LastException)
End Try
Else
Log("MQTT not connected")
CallSub(Starter,"ConnectAndReconnect")
End If
Error I am facing as below :
B4X:
Trying to connect
starter$ResumableSub_ConnectAndReconnectresume (java line: 265)
java.lang.NullPointerException: Attempt to get length of null array
at org.eclipse.paho.client.mqttv3.internal.ConnectActionListener.onFailure(ConnectActionListener.java:101)
at org.eclipse.paho.client.mqttv3.internal.ConnectActionListener.connect(ConnectActionListener.java:169)
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.connect(MqttAsyncClient.java:497)
at anywheresoftware.b4j.objects.MqttAsyncClientWrapper.Connect2(MqttAsyncClientWrapper.java:83)
at b4a.example.starter$ResumableSub_ConnectAndReconnect.resume(starter.java:265)
at b4a.example.starter._connectandreconnect(starter.java:215)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.keywords.Common.CallSub4(Common.java:1082)
at anywheresoftware.b4a.keywords.Common.CallSubNew(Common.java:1029)
at b4a.example.main._update_location(main.java:2468)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.keywords.Common.CallSub4(Common.java:1082)
at anywheresoftware.b4a.keywords.Common.CallSubNew2(Common.java:1037)
at b4a.example.starter._flp_locationchanged(starter.java:351)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at uk.co.martinpearman.b4a.fusedlocationprovider.FusedLocationProvider.onLocationChanged(FusedLocationProvider.java:93)
please advice.....