有效的方式来扩展PHP/AJAX轮询网站的变化


Efficient Way to Scale PHP/AJAX Polling a Website for Changes

我们正在创建一个基于php的网站与MySQL数据库。演示者正在投影仪上展示一个网站。该网站有演示图片和文本以及一个投票区。

拥有移动设备的观众可以登录到显示当前民意调查问题的网站,并允许观众在近乎实时的民意调查中投票。

AJAX在一个PHP脚本中循环运行,查询数据库以便在显示屏幕上生成接近实时的结果。

我希望有某种方法可以使用事件侦听器来接收更改的通知,而不是不断地ping服务器。

不幸的是,我们没有一个我可以在这里发布的网站的公众视图,但我想获得关于技术的意见和想法,以允许它扩展,并在网站和移动网站上进行有效的轮询。

是的,有更好的方法。这组技术通常包含在所谓的Comet中。您可能想要做的是使用AJAX长轮询。基本上,您使用浏览器向服务器发出请求,服务器在获得新数据之前不会响应。一旦它响应了,在浏览器上,你立即初始化一个新的请求。

请注意,一个更好的方法是使用web套接字服务器。看看这些,它们是在浏览器和服务器之间进行实时数据传输的一种方式。很多人用node.js做了很多很酷的事情,比如socket.io。但是你确实需要一个专门的服务器,而不仅仅是虚拟主机。