我正在为iOS和Android编写NodeJS推送通知服务器。目前,一旦我获得设备令牌,我将它们保存在本地MongoDB数据库中,然后在发生更改时触发通知。问题是,发生“更改”(添加信息)的数据库不是我自己的。这是第三方的服务器。因此,我了解服务器更改的方式是使用第三方提供的API。我目前的解决方案是使用setTimeout
每X分钟发出一次请求以检查更改,然后根据该请求发出通知。短路间隔为10分钟,最长间隔为1小时。我改变了间隔
根据时间动态整天。我的问题是(是),
1。) setTimeout
方法是解决此问题的最佳解决方案吗?如果不是我可以使用其他什么?
2.。)在这种情况下,我有什么方法可以实现Web Sockets
吗?
3。)如果setTimeout
是唯一的选择,我应该遇到什么样的问题?
这是当前函数的样子
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);
}
}