решал похожую задачу по опроса сервера, котоый отдает состояние охранных датчиков.
Изначально требовалось каждые 10с опрашивать, но потом договорились раз в 30с.
При использовании setInterval() иногда, но достаточно систематично, вываливалась неприятность - еще не пришел ответ на запрос, а уже отправляется следующий, что генерировало трафик и подгружало сервер.
Поэтому в веб-клиенте я заменил setInterval() на setTimeout() в такой логике: при успешном получении ответа на запрос, генерировался очередной setTimeout(). при неуспешном (таймаут или еще что) также генерировался setTimeout(), но уже с удвоенным периодо ожидания.
|