数据库数据更改时,将响应发送到所有活动会话

时间:2012-05-10 13:03:50

标签: php javascript ajax

我希望在数据库数据发生变化时向当前处于活动状态(记录或查看内容)的所有用户发送响应。

示例

有些用户正在查看“数据”表。

目前我每5秒执行一次AJAX调用,如果数据库响应发生变化,将通知客户端。

但我不再想这样做了。

2 个答案:

答案 0 :(得分:1)

ajax轮询的替代方法(正如你所做的那样)是使用彗星/服务器端推送。

换句话说,您可以使用WebSockets,Ajax长轮询,服务器发送事件等来向客户端发送消息,而不是客户端轮询。

为了这个例子,我将使用WebSockets。我在下面描述的内容也适用于其他方法。

如果您已经有一个现有的PHP应用程序,最简单的方法可能是编写一个单独的“守护进程”脚本来处理套接字。每当您的应用程序更改数据库中的某些数据时,您都会向守护程序脚本发送一条消息,然后该脚本将通知已连接的客户端该更改。

您可以使用ZeroMQ之类的东西在主应用程序和套接字守护程序之间进行消息传递。

答案 1 :(得分:0)

您可以使用轮询或websockets,也许Pusher.com可以为您提供解决方案。