Reconnexion automatique au serveur MQTT lors d'une déconnexion
This commit is contained in:
@@ -8,6 +8,10 @@ CMQTTClientWrapper::CMQTTClientWrapper()
|
||||
mMQTTRefreshTimer = new QTimer;
|
||||
mMQTTRefreshTimer->setSingleShot(true);
|
||||
connect(mMQTTRefreshTimer,&QTimer::timeout,this,&CMQTTClientWrapper::MQTTSendTimerExpired);
|
||||
|
||||
mMQTTReconnectTimer = new QTimer;
|
||||
mMQTTReconnectTimer->setSingleShot(true);
|
||||
connect(mMQTTReconnectTimer,&QTimer::timeout,this,&CMQTTClientWrapper::MQTTReconnectTimerExpired);
|
||||
mProgramPtr = 0;
|
||||
}
|
||||
|
||||
@@ -84,12 +88,14 @@ void CMQTTClientWrapper::StateChanged()
|
||||
qDebug("MQTT client Disconnected");
|
||||
mProgramPtr->SetMQTTConnectionSatusRequest(false);
|
||||
mMQTTRefreshTimer->stop();
|
||||
mMQTTReconnectTimer->start(MQTT_CLIENT_RECONNECT_TIMEOUT);
|
||||
break;
|
||||
}
|
||||
case QMqttClient::Connected:
|
||||
{
|
||||
mProgramPtr->SetMQTTConnectionSatusRequest(true);
|
||||
mMQTTRefreshTimer->start(mMQTTParams.mMQTTTransmitTimeout);
|
||||
mMQTTReconnectTimer->stop();
|
||||
qDebug("MQTT client Connected");
|
||||
break;
|
||||
}
|
||||
@@ -136,8 +142,8 @@ void CMQTTClientWrapper::MQTTSendTimerExpired()
|
||||
{
|
||||
qint32 res = mMQTTClient.publish(MessagesList->at(i).mMessageTopic,MessagesList->at(i).mMessagePayload.toLocal8Bit(),0,true);
|
||||
qDebug("%s : %s",qPrintable(MessagesList->at(i).mMessageTopic), qPrintable(MessagesList->at(i).mMessagePayload));
|
||||
QString LogMsg = QString("Envoi d'un message MQTT. Topic: %1. Payload: %2").arg(MessagesList->at(i).mMessageTopic).arg(MessagesList->at(i).mMessagePayload);
|
||||
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,false);
|
||||
QString LogMsg = QString("Envoi d'un message MQTT. Topic: %1 Payload: %2").arg(MessagesList->at(i).mMessageTopic).arg(MessagesList->at(i).mMessagePayload);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,false);
|
||||
|
||||
}
|
||||
qDebug("Sent %d MQTT messages",MessagesList->size());
|
||||
@@ -147,3 +153,8 @@ void CMQTTClientWrapper::MQTTSendTimerExpired()
|
||||
mMQTTRefreshTimer->start(mMQTTParams.mMQTTTransmitTimeout);
|
||||
|
||||
}
|
||||
|
||||
void CMQTTClientWrapper::MQTTReconnectTimerExpired()
|
||||
{
|
||||
ConnectToBroker();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef MQTTCLIENTWRAPPER_H
|
||||
#define MQTTCLIENTWRAPPER_H
|
||||
|
||||
|
||||
#include "defines.h"
|
||||
#include <QtMqtt/QtMqtt>
|
||||
#include <QMqttClient>
|
||||
@@ -28,6 +29,7 @@ public:
|
||||
COtarcikCan *mProgramPtr;
|
||||
QString mMQTTClientID;
|
||||
QTimer *mMQTTRefreshTimer;
|
||||
QTimer *mMQTTReconnectTimer;
|
||||
|
||||
|
||||
private:
|
||||
@@ -38,6 +40,7 @@ private:
|
||||
public slots:
|
||||
void StateChanged();
|
||||
void MQTTSendTimerExpired();
|
||||
void MQTTReconnectTimerExpired();
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user