У меня есть несколько устройств, которые производят данные через MQTT, отправленные в ядро GCP IoT. Я хочу отслеживать, подключено ли устройство в настоящее время или отключено от брокера MQTT. На это уже был дан ответ в другом месте на SO , и это подход, который я сейчас использую: отслеживайте журналы Stackdriver для сообщений CONNECT / DISCONNECT и публикуйте их sh в отдельном разделе Pub / Sub c. Этот topi c затем читается функцией Firebase для обновления поля моего устройства в сети / офлайн.
Теоретически это работает, но из-за поля истечения срока действия JWT я вынужден повторно подключать свои устройства каждые время истечения срока действия токена, вызывая множество ложных срабатываний онлайн / офлайн. Есть ли способ, возможно, обновить sh токен при сохранении соединения? Или лучший подход, чтобы просто контролировать возможность подключения устройства?
Я, вероятно, могу использовать событие Heartbeat и рассматривать устройство только в автономном режиме, если в течение N минут не было получено Heartbeat, или даже периодически отправляя какой-либо ping команду на устройство. Хотя было бы неплохо просто знать, подключено ли устройство в данный момент или нет.