推送通知服务器后端,用于iOS和Android间隔轮询方法

时间:2015-06-25 17:38:36

标签: javascript ios node.js long-polling polling

我正在为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);
    }
 }

0 个答案:

没有答案