我希望在数据库数据发生变化时向当前处于活动状态(记录或查看内容)的所有用户发送响应。
示例
有些用户正在查看“数据”表。
目前我每5秒执行一次AJAX调用,如果数据库响应发生变化,将通知客户端。
但我不再想这样做了。
答案 0 :(得分:1)
ajax轮询的替代方法(正如你所做的那样)是使用彗星/服务器端推送。
换句话说,您可以使用WebSockets,Ajax长轮询,服务器发送事件等来向客户端发送消息,而不是客户端轮询。
为了这个例子,我将使用WebSockets。我在下面描述的内容也适用于其他方法。
如果您已经有一个现有的PHP应用程序,最简单的方法可能是编写一个单独的“守护进程”脚本来处理套接字。每当您的应用程序更改数据库中的某些数据时,您都会向守护程序脚本发送一条消息,然后该脚本将通知已连接的客户端该更改。
您可以使用ZeroMQ之类的东西在主应用程序和套接字守护程序之间进行消息传递。
答案 1 :(得分:0)
您可以使用轮询或websockets,也许Pusher.com可以为您提供解决方案。