谁能给我一个使用 PHP 的彗星技术的简单好例子吗?
我只需要一个使用持久 HTTP 连接或类似连接的示例。我不想使用轮询技术,因为我有类似的设置,不仅难以使用和管理它的大量资源。另外我使用的是 IIS7 而不是 Apache。
一个很好的例子会很有帮助,所以我可以从这种丑陋的轮询技术继续前进。
谁能给我一个使用 PHP 的彗星技术的简单好例子吗?
我只需要一个使用持久 HTTP 连接或类似连接的示例。我不想使用轮询技术,因为我有类似的设置,不仅难以使用和管理它的大量资源。另外我使用的是 IIS7 而不是 Apache。
一个很好的例子会很有帮助,所以我可以从这种丑陋的轮询技术继续前进。
您应该使用轮询,或者使用专门为长请求和 COMET 设计的 Web 服务器,具有良好的 JS 后端:
function listen() {
$.get("/mylongrequestfile", {}, function(data) {
$("#mydiv").html(data);
listen(); // then launch again
}));
};
请记住,COMET 是“等待数据,如果有数据返回并退出”,因此 JS 后端将不得不解析数据并重新启动询问服务器的过程。
在这个例子中,如果出现服务器端问题或者只是与用户端断线,整个过程都会中断(只有请求成功才会调用该函数)
看看这个:如何用 PHP 实现 COMET。
这不是使用 JQuery。它是使用 PHP 和 Prototype 制作的。这很容易理解。我认为您可以在查看此内容后轻松制作 JQuery 脚本。
我在这里有一个非常简单的例子,可以让你开始使用彗星。它涵盖了使用 NHPM 模块编译 Nginx,并包含 jQuery、PHP 和 Bash 中简单发布者/订阅者角色的代码。
http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/
可以在这里找到一个工作示例(简单聊天):http:
//cheetah.jamieisaacs.com/
从未使用过这种技术并研究过有关该主题的Wikipedia 文章,“Long Polling”似乎是唯一可行的解决方案。通过在服务器上无限循环和休眠脚本来实现听起来很简单。HTTP Streaming 页面中有一些实际代码链接到 Wikipedia 文章。
您是否尝试过任何这些并偶然发现了具体问题?
查看此演示视频以实现长轮询(彗星)。它可能对大家有所帮助
你可以看看这篇文章,这是了解彗星编程概念的一个很好的开始。
你会在上面找到两个例子。第一个使用 iframe 技术,而第二个使用持久连接。
对于 IIS,有WebSync。但是,由于您使用的是 PHP,因此使用WebSync On-Demand可能会更好。任何一个都会为您提供您正在寻找的服务器推送,并且易于使用。也看看这个问题,这基本上就是你所追求的。
这是一个不使用脚本语言的 WebSync On-Demand 的简单示例。只需在两个窗口中打开,然后查看发布/订阅操作。
要从服务器发布,您可以使用PHP api。