如何在您的网站中使用长轮询或Ajax推送

时间:2011-12-16 13:16:22

标签: php jquery ajax comet ajax-polling

我想知道如何使用ajax推送。我从各种Web文章中了解到,通过使用COMET,APE(AJAX PUSH ENGINE)等少数程序可以获得Ajax推送....但我想知道是否有更简单的使用方法和使用的语言实现ajax推送。因为在我看过的文章中。他们正在使用java。我没有学习:(所以我想知道是否有类似的东西:你的服务器中的javascript设置一个特定项目的间隔,然后如果发现任何更改然后使用PHP回显它。?请帮助我为了这个。它已经过了一个星期了,我试图实现这一点。我试图使用正常的ajax和php使用间隔但无法得到结果。谢谢.PS:请给我一个简单的方法来使用它的例子什么的。

2 个答案:

答案 0 :(得分:2)

如果你想使用PHP作为你的后端技术,那么这将是一场艰难的斗争。请阅读concurrency - How to implement event listening in PHP上的此问题以获取更多信息。

在我看来,PHP开发人员最简单的解决方案是使用像Pusher这样的托管实时服务 - 我为谁工作。这意味着您无需担心实时Web基础结构的安装或维护,最重要的是,您无需担心服务器处理持久并发连接。您可以使用Pusher JavaScript库从Web浏览器连接到Pusher,维护持久连接并接收推送给它的任何更新,并使用Pusher REST API将数据从PHP应用程序通过Pusher发布到连接的客户端。

有一个getting started with Pusher guide on Nettuts+非常受欢迎,对任何使用PHP的人来说都是一个很好的起点。

如果你真的想在PHP上托管自己的实时基础架构(不要说我没有警告过你),那么你可以查看How to implement PHP with CometPHP WebSockets(github上还有一个项目)最近的活动名为php-websocket-server)。

答案 1 :(得分:1)

前一段时间我使用了一种基于flash的非常简单的方法

我在我的页面上添加了一个1px * 1px透明闪存,它打开了我的AJAX发送请求的服务器的套接字。服务器接收AJAX请求并在闪存套接字上响应

Flash只会打开一个调用onreceive事件处理程序的javascript:url,因此您不会打开新页面,而是在当前页面上运行javascript