我实现了非常简单和懒惰的方法,通过ajax从服务器请求数据的间隔实时影响 .
但我想选择长轮询/彗星技术,因为它们鼓励服务器在有一个而不是客户端不断拉动时推送数据,即使没有 .
我完全理解长轮询和彗星工作的方式 . 但我希望看到服务器在有数据发送到客户端时推送的编码部分 .
很久以前客户端发出的请求(长轮询)如何才能在有数据时推送服务器?我不明白这一部分 . 有人可以在编码中显示吗?
目前我通过ajax检查间隔中的新数据 . 现在,如何在没有客户端要求的数据的情况下自动返回服务器时,如何修改它以实现长轮询?
(function notify(){
$.each(id, function(k, v){
jQuery.ajax({
method: "POST",
url: "/notification.php",
"data": v,
error: function() {
reject('error');
},
success: function(result) {
console.log(result.data);
}
});
})
setTimeout(function(){
notify();
}, 1000);
})()
由于此问题标记为重复:
我说我完全理解长轮询和彗星的概念 . 我在这里不是要理解这个概念,而是为了实际实现这个概念的代码!
1 回答
最后我找到了答案:
http://www.zeitoun.net/articles/comet_and_php/start
我选择了网站上给出的第二个例子:经典ajax的彗星它就像魅力一样 . 下面是jquery中index.html(客户端页面)的代码也来自网站..