Сделать так, чтобы клиентское соединение MQTT всегда присутствовало

Я использую чип ESP8266 и программную среду SMING MqttClient_Hello в качестве примера.

Я хочу, чтобы соединение MQTT всегда присутствовало в любое время. Если по какой-либо причине соединение прервется, я бы хотел, чтобы произошло повторное соединение. Как это может быть сделано?

Соответствующий код в MqttClient_Hello;

void startMqttClient();
void onMessageReceived(String topic, String message);
MqttClient mqtt("192.168.1.8", 1883, onMessageReceived);

// Run MQTT client
void startMqttClient()
{
   mqtt.connect("esp8266");
   mqtt.subscribe("TopicTest");
}

Что нужно изменить в коде, чтобы обеспечить постоянную связь?


person user781486    schedule 06.01.2016    source источник


Ответы (1)


Таким образом, SMING, похоже, не имеет обратного вызова об отключении или ошибке.
int mqtt_ping(mqtt_broker_handle_t* broker){...} реализован в libemqtt, и вы можете попытаться поддерживать соединение с помощью обычного эхо-запроса и попытаться повторно подключиться, если это не удастся.

person DooMMasteR    schedule 06.01.2016