简单的彗星使用PHP和jQuery的例子

任何人都可以给我一个使用PHP的彗星技术的一个很好和简单的例子吗? 我只需要一个使用持久HTTP连接或类似的例子。 我不想使用投票技术,因为我有类似的build议,不仅难以合作,而且还要pipe理一大笔资源。 另外我使用IIS7不是Apache。 一个很好的例子会非常有用,所以我可以从这个丑陋的轮询技术中继续。

你应该使用轮询,或者使用一个专门用于长时间请求和COMET的web服务器,以及一个好的JS后端:

function listen() { $.get("/mylongrequestfile", {}, function(data) { $("#mydiv").html(data); listen(); // then launch again })); }; 

请记住,COMET是“等待数据,如果有数据返回和退出”,所以JS后端将不得不parsing数据并重新启动询问服务器的过程。

在这个例子中,如果服务器端出现问题或者只是从用户端断开连接,则整个过程将被中断(仅当请求成功时才会调用该function)

看看这个: 如何用PHP实现COMET 。
这不是使用JQuery。 它是使用PHP和Prototype制作的。 这很容易理解。 我认为你可以在查看这个后很容易地让JQuery脚本。

我build议你看这个videohttp://www.screenr.com/SNH

我有一个非常简单的例子,可以让你从彗星开始。 它涵盖了使用NHPM模块编译Nginx,并包含简单的jQuery,PHP和Bash中发布者/订阅者angular色的代码。

http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

一个工作示例(简单聊天)可以在这里find:
http://cheetah.jamieisaacs.com/

从来没有使用这种技术和研究维基百科的文章 ,“长轮询”似乎是唯一可行的解​​决scheme。 这听起来很简单,通过无限循环和睡眠脚本在服务器上实现。 HTTPstream媒体页面中有一些实际的代码链接到维基百科文章。

你有没有尝试过这些,并偶然发现具体问题?

看看这个演示video实施长轮询(彗星)..它可能会帮助你所有

http://www.screenr.com/SNH

你可以看看这篇文章 ,这是了解彗星编程概念的一个很好的开始。

你会发现它的两个例子。 第一个使用iframe技术,而第二个使用持久连接。

对于IIS,有WebSync 。 但是,由于您使用的是PHP,因此使用WebSync On-Demand可能会更好。 任何一个都会给你你想要的服务器推送,而且使用简单。 看看这个问题 ,这基本上是你所追求的。

下面是一个简单的WebSync按需使用脚本语言的例子 。 只需在两个窗口中打开,然后查看发布/订阅即可。

要从服务器发布,您可以使用PHP API 。