PHP-AJAX jQuery服务器”;“推”;系统


PHP - AJAX jQuery Server "Push" System

我正在创建一个需要实时通知系统的web应用程序。如何设置服务器从mySQL数据库中提取数据,然后将其推送到浏览器。我完全不知道该怎么做。如果有人能帮忙,我们将不胜感激!非常感谢!

编辑:我可能应该更具体一点,我正在提取数据,就像在XYZ最近创建了一个帐户,XZY最近。。。非常感谢!

您不能将数据推送到浏览器,但您可以设置网页,每隔几秒钟轮询服务器一次以获取更新。一个示例设置是:

在你的网站上,有一个javascript函数,每隔几秒钟(或者任何最适合你的时间间隔)在计时器上运行一次。

在页面加载时启动计时器。

这个javascript函数调用对web服务器上的web服务的AJAX调用(稍后会详细介绍)。

在服务器端,您需要某种系统来跟踪这些事件并将其存储在某个位置,例如带有时间戳的数据库表中。例如,当XYZ创建一个帐户时,该帐户将记录在数据库中的"事件"表中。

AJAX调用调用的web服务将对该表运行查询,并检索自上次调用以来的所有条目。然后用这些结果更新网页。

它显然不是100%"实时"的,因为根据您在JS计时器中设置的时间间隔会有一个小延迟,但它非常接近。

您可以利用websocket为您的网站创建推送通知服务,并将其优雅地降级为不支持websocket的浏览器的长轮询回退。这确实需要大量的技术/编程知识。

一些好的资源是:http://socket.io(它为web套接字使用node.js后端并处理降级)http://pusherapp.com(如果你不想推出和维护自己的服务,这是一个商业解决方案)

对于支持websocket的浏览器列表,你可以搜索"canius"——它提供了浏览器版本支持的功能的详细信息

注意:对于像Facebook这样的数百万用户应用程序,我认为他们已经权衡了为5000多万同时使用的用户运行websocket的优势,并得出结论,在连接到数百万个套接字的所有节点上保持数据一致太过分了。我可以想象,在套接字系统而不是像sql这样的基本操作基础设施上这样做将是一场逻辑噩梦。不过,我不能代表他们发言,这只是我的假设。然而,你会惊讶于最近有多少网站使用推送和轮询系统:)