Я написал простую программу, используемую для наблюдения за состоянием соединения MQTT.
Выбор библиотеки MQTT
Выполнять только MQTT Connect, но не выполнять другие действия, например client.l oop (продолжать соединение) 、 отключаться.
При успешном подключении и подождать примерно 22 секунды TCP отправляет [ FIN, ACK] и [RST, ACK].
Тайм-аут TCP? И как узнать значение тайм-аута TCP и просмотреть сеансы из Wireshark.
Клиент: ESP8266 <-> MQTT Broker: Windows
Код:
void MQTT_Setup(){
client.setServer(MQTT_SERVER, MQTT_PORT);
//client.setCallback(callback);
MQTT_Connect();
}
void MQTT_Connect(){
bool bMQTT;
bMQTT = client.connect("ESP");
Serial.println("MQTT Connected");
if(bMQTT)MQTT_Disconnect();
//MQTT_Publish();
}
void setup() {
Serial.begin(BAUDRATE);
delay(3000);
WIFI_Setup();
MQTT_Setup();
}
void loop() {
//client.loop();
}
Wireshark: введите описание изображения здесь