如何在更新数据库时向客户端发送警报,例如Facebook聊天

时间:2014-10-16 08:30:36

标签: javascript php jquery mysql ajax

我想向仅在saome字段更新时使用网站的客户发送警报。 我知道如何使用静默ajax调用定期检查数据库更新。 我只想在有更新信息时触发ajax调用。 换句话说,mysql服务器将向客户端发送一个警告,表明某些表行已更改,以便客户端将触发ajax调用并且可以检索信息。

4 个答案:

答案 0 :(得分:1)

您可以使用带有PHP的websockets。看看Thruway。 Thruway使用WAMP,它支持发布和订阅消息模型。您可以使用浏览器端的AutobahnJS JavaScript库来订阅PHP进行数据库更新时发布的事件。

免责声明:我是Thruway的项目维护者。

答案 1 :(得分:0)

这样做的最好方法是使用诸如nodejs之类的实时技术,但是在php中有一种方法(使用javascript / jquery)。我曾经用php和javascript开发聊天。我所做的只是在javascript中设置五秒间隔来收听服务器的任何新消息并将其附加到聊天框。

答案 2 :(得分:0)

如果您的网络服务器是节点使用websockets,否则唯一的另一种方法是长时间轮询(使用setInterval)每30秒左右查询一次数据库

答案 3 :(得分:0)

您可以使用此代码:

function checkUpdate()
{
 jQuery.ajax({
   type: "POST",
   url: "your.php",
   data: "name=currentUser&",   //our any other data you want to check
   success: function(msg){
     if(msg.indexOf('no Updates') !== -1 )
         {
            alert( "You have an update" );
     }
 });
}

您可以使用上面的代码调用并从your.php获取响应,并在响应不包含“no Updates”时发出警报。我建议你每2分钟用这段代码定期做这件事:

window.setInterval("checkUpdate()", 2*60*1000); // our any other period you want