推送iOS和Android Interval Poll方法的通知服务器后端

我正在为iOS和Android编写一个NodeJS推送通知服务器。 目前,一旦我获得设备令牌,我将它们保存在本地MongoDB数据库中,然后在发生更改时触发通知。 问题是,“更改”(信息添加)发生的数据库不是我自己的。 这是第三方的服务器。 所以我知道服务器的变化是通过使用第三方提供的API。 我目前的解决scheme是使用setTimeout每隔X分钟发出一个请求来检查更改,然后基于此发出通知。 缩短的时间间隔是10分钟,最长的时间是1小时。 我基于时间dynamic地改变时间间隔。 我的问题是(是),

1.) setTimeout方法是否是解决这个问题的最好方法? 如果不是我还能使用什么?

2.)有什么办法可以在这种情况下实现Web Sockets

3.)如果setTimeout是唯一的select,我应该遇到什么样的问题?

这是什么目前的function看起来像

  function start_notifications_server_driver() { if(current_user_info.num_sent <= current_user_info.frequency){ //I removed the interval object on here because it's quite large and would take up space here for(var i = 0; i < intervals.length; i++){ if(check_if_time_between(intervals[i])){ if(dev_mode) console.log("Returned true for", intervals[i]); temp_interval = intervals[i].frequency; break; } } check_updates_for_channels_driver(); setTimeout(start_notifications_server_driver, temp_interval); console.log("Time Interval changed to now", temp_interval); } }