Похоже я нашел проблему при соединении с Cloudmqtt.
Как я понял, для каждого зарегистрированного пользователя Cloudmqtt запускает свой экземпляр mosquito (instance) и иногда он просто подвисает.
Если у вас приложение не соединяется с CloudMQTT - вы можете проверить его доступность по ссылке
https://customer.cloudmqtt.com/customer/
выберите Details, затем нужно кликнуть по кнопке Websocket UI
попробуйте опубликовать в любой топик любые данные (например test test)
Если сервер работает, то справа вы увидите, что данные опубликованы, если нет - там будет пусто.
Лечится просто - кликните по кнопке Restart (она там же, где и Websocket UI)
Cкриншот когда все ок:
Если сервер доступен, но приложение не соединятся.
Одно из возможных решений проблемы отсутствия соединения с CloudMQTT - проблема с сертификатами в Android.
Возможный путь решения: установка сертификата CloudMQTT вручную.
1. Зайдите на
https://cloudmqtt.com на вашем ПК любым браузером (я пробовал Chrome - все получилось)
2. В адресной строке кликните по иконке замка (сведения о сайте), выберите вкладку
Соединение, кликните по ссылке
Данные сертификата
3. Откроется сертификат CloudMQTT, перейдите на вкладку
Состав, выберите
Копировать в файл
4. Укажите путь для сохранения и название файла (любые, на ваш выбор)
5. Скопируйте файл сертификата на ваш смартфон (на SD карту или внутреннюю память)
6. На смартфоне Настройки - Личные данные - Безопасность - Хранилище учетных данных - Установка с SD карты (названия пунктов меню могут немного отличаться в разных версиях Android)
7. Установить сертификат на смартфон, указав его имя, например CloudMQTT, и указать, что использовать его для VPN и приложений (не для WiFi)