I am using Mosquitto Mqtt along with paho API to receive push messages on android device. But as soon as the network connectivity changes it stops receiving messages. Here are the steps to reproduce the issue with simple test case:
1) Create a simple activity.
2) On Activity StartUp connects to mosquitto test server (test.mosquitto.org:1883) through paho API.
3) Subscribe to some topic.
4) Publish some message to the topic.
Result: Mqtt Client receives all the messages published to the topic. Now
5) Disable internet connection on the mobile (mobile data)
6) Publish some message to the topic.
7) Reconnect internet.
Result: Client Does not receive any message published after internet connection was disabled.
As KeepAliveInterval has been kept to high value (30 minutes), it should receive all messages after reconnecting to the internet.
The same use case (same code) is working for simple java project (non-android) where I disable internet on my laptop to run the use case.
Any idea why it is not working on android device??? Am I missing something?
Note:
1) Using mqtt-client-0.4.1
2) Android target API level 11
3) Not putting device to sleep mode during the test.
4) Does not get any call in connectionLost callback and all the 4 threads of mqtt callback are running throughout the test case i.e connection the the mosquitto server is intact.