使用php和jquery的简单彗星示例

问题描述 投票:34回答:7

任何人都可以给我一个使用PHP的彗星技术的简单例子吗?

我只需要一个使用持久HTTP连接或类似的示例。我不想使用轮询技术,因为我有这样的设置,不仅难以使用和管理它的大量资源。我也使用IIS7而不是Apache。

一个很好的例子真的很有用,所以我可以从这种丑陋的轮询技术中继续前进。

php http iis comet keep-alive
7个回答
14
投票

您应该使用轮询,或使用专门为长请求和COMET设计的Web服务器,以及良好的JS后端:

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

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

在此示例中,如果存在服务器端问题或仅断开与用户端的连接,则整个过程将被中断(仅在请求成功时才调用该函数)


6
投票

看看这个:How to implement COMET with PHP。 这不是使用JQuery。它是使用PHP和Prototype制作的。这很容易理解。我认为你可以在查看之后轻松制作JQuery脚本。


3
投票

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

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

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


2
投票

从未使用过这种技术并研究Wikipedia article的主题,“长轮询”似乎是唯一可行的解​​决方案。通过在服务器上无限循环和休眠脚本来实现它听起来非常简单。 actual code中有一些与维基百科文章相关的HTTP Streaming page

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


2
投票

查看此演示视频以实现长轮询(彗星)..它可能对您有所帮助

http://www.screenr.com/SNH


1
投票

你可以看看这个article,这是了解彗星编程概念的一个非常好的开始。

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


0
投票

对于IIS,有WebSync。但是,由于您使用的是PHP,因此使用WebSync On-Demand可能会更好。任何一个都会为您提供您正在寻找的服务器推送,并且易于使用。查看this question,这基本上就是你所追求的。

这是使用无脚本语言的a simple example of WebSync On-Demand in action。只需在两个窗口中打开,然后查看发布/订阅操作。

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

© www.soinside.com 2019 - 2024. All rights reserved.