我想在Angularjs中执行一个简单的长轮询请求 - 我发出GET请求,并挂起直到服务器响应。然后我再次发出请求并等待下一个响应 - 等等。Angularjs长轮询
但是,由于某种原因,该代码是相当不可靠的,错过80%左右,从服务器发送的响应。
下面是我的代码:
main.messages=[];
...
main.poll=function(){
$http.get('http://localhost:8080/message')
.success(function(data){
console.log(data);
main.messages.push(data);
main.poll();
})
.error(...)
};
有没有,我很想念这里的东西明显?
服务器可以检测到浏览器被连接,并且服务器不发送响应而上面的代码没有得到响应(无控制台输出和无差错)。我试着用邮差(扩展名为chrome)提出这个请求,并且长时间轮询在那里完美工作,所以我认为问题出现在这里。
更新:该问题仅在谷歌浏览器中出现,并且只有当多个选项卡同时执行长轮询时才会发生。在创建和关闭新的选项卡时,有一些看似随机的行为。
这只是故事的一半,因为您没有包含超时代码或服务器端代码,因此很难可靠地进行诊断。 – 2014-11-25 10:16:19
超时码? – jitin 2014-11-25 10:19:41