Ich versuche, MQTT in meiner App für Echtzeitbenachrichtigungen zu verwenden. Als Client-Bibliothek verwende ich Eclipse Paho. Hier ist ihre Beispielanwendung für Android: Ссылка
Am Android 4
funktioniert es gut - wenn ich verbunden bin und mein Gerät in den Schlafmodus geht, sendet mqttClient periodische Pings und hält die Verbindung am Leben.
Aber auf meinem Android 5.1.1
wird die Verbindung nach kurzer Zeit unterbrochen, wenn das Gerät in den Schlafmodus wechselt.
Das Seltsame ist, dass ich immer noch eine WLAN-Verbindung habe, Wifi nicht getrennt ist (ich habe einen BroadcastReceiver dafür implementiert), aber aus irgendeinem Grund wird die MQTT-Verbindung nicht beibehalten.
Ich habe die Beispiel-App von Eclipse getestet, meinen eigenen Dienst mit Wakelocks und periodischen Pings implementiert - die gleiche Geschichte.
Weiß jemand, warum passiert das? Irgendeine Abhilfe dafür?
als Referenz: Ссылка
update: Ich habe herausgefunden, dass die Verbindung bestehen bleibt, wenn ich keepAlive auf 10 Sekunden einstelle. Wenn es 20 Sekunden ist, wird die Verbindung unterbrochen. Dasselbe Szenario tritt auf, wenn Ссылка verwendet wird (10 Sekunden Pings - Verbindung bleibt bestehen, 20 Sekunden Pings - Verbindung wird getrennt). Weiß jemand warum?