Hi, I have been trying for several hours to solve this problem: do not receive data from the MQTT.
I made a B4J Brocker and B4J Client program, the clients transmit and receive data in the "myTopic" without problems .... the B4R connects with MQTT but does not receive anything ... I use a WeMos D1 card.
I am attaching the code I use. Where could the problem be?
Thanks Marco
I made a B4J Brocker and B4J Client program, the clients transmit and receive data in the "myTopic" without problems .... the B4R connects with MQTT but does not receive anything ... I use a WeMos D1 card.
I am attaching the code I use. Where could the problem be?
Thanks Marco
B4X:
Sub Process_Globals
Public Serial1 As Serial
Private WiFi As ESP8266WiFi
Private WiFiStr As WiFiSocket
Private MQTT As MqttClient
Private MQTTOpt As MqttConnectOptions
Private MQTTUser As String = "myUser"
Private MQTTPassword As String = "myPassWord"
Private MQTTHostName As String = "192.168.1.32"
Private MQTTPort As Int = 28029
End Sub
Private Sub AppStart
Serial1.Initialize(115200)
Delay(1000)
Log("AppStart")
'Connect to local WiFi Access Point
WiFi.Connect2("Vodafone-xxxx", "xxxxxxxxxxxxxx")
If WiFi.IsConnected Then Log("Connected to WiFi, Local IP ", WiFi.LocalIp) Else Log("Not Connected to WiFi")
'Connect to CloudMQTT broker
MQTT.Initialize2(WiFiStr.stream, MQTTHostName, MQTTPort, "Wemos", "MQTT_MessageArrived", "MQTT_Disconnected")
MQTTOpt.Initialize(MQTTUser, MQTTPassword)
MQTT_Connect(0)
End Sub
Sub MQTT_MessageArrived (Topic As String, Payload() As Byte)
Log("New Data")
Log("Topic = ", Topic, " and Payload = ", Payload)
End Sub
Sub MQTT_Connect(Unused As Byte)
If MQTT.Connect = False Then
Log("Trying to connect to broker")
MQTT.Connect2(MQTTOpt)
CallSubPlus("MQTT_Connect", 1000, 0)
Else
Log("Connected to broker")
MQTT.Subscribe("myTopic",0)
End If
End Sub
Sub MQTT_Disconnected
Log("Disconnected")
MQTT.Close
MQTT_Connect(0)
End Sub