22
33#include " ArduinoJson.h"
44
5+ void (*messageReceivedCallback)(std::string , std::string);
6+
7+ void onMqttMessage (char * topic, char * payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total)
8+ {
9+ std::string topicString (topic);
10+ std::string payloadString (payload);
11+
12+ messageReceivedCallback (topic, payload);
13+ }
14+
15+
516MqttManager::MqttManager ()
617{
718 m_connected = false ;
@@ -24,9 +35,11 @@ void MqttManager::setup(std::string mqttServer, std::string mqttPort, std::strin
2435 IPAddress server;
2536 server.fromString (m_mqttServer.c_str ());
2637
27- m_mqttClient.setServer (server, m_mqttPort );
28- m_mqttClient. setCredentials (mqttUsername. c_str (), mqttPassword. c_str ());
38+ m_mqttClient.onMessage (onMqttMessage );
39+
2940 m_mqttClient.setCleanSession (false );
41+ m_mqttClient.setCredentials (mqttUsername.c_str (), mqttPassword.c_str ());
42+ m_mqttClient.setServer (server, m_mqttPort);
3043
3144 m_deviceStatusInfoTimer.start ();
3245 m_checkConnectivityTimer.start ();
@@ -155,9 +168,9 @@ void MqttManager::publishMQTT(std::string topic, std::string payload)
155168 }
156169}
157170
158- void MqttManager::setCallback (void (*callback)(char *, char *, AsyncMqttClientMessageProperties, size_t , size_t , size_t ))
171+ void MqttManager::setCallback (void (*callback)(std::string , std::string ))
159172{
160- m_mqttClient. onMessage ( callback) ;
173+ messageReceivedCallback = callback;
161174}
162175
163176void MqttManager::setLastWillMQTT (std::string topic, const char * payload)
0 commit comments