数据库更新时的警报消息

时间:2009-12-26 06:40:06

标签: php javascript chat

我正在用php创建一个聊天应用程序。

目的: 当user1邀请 user2 时, user2 想要获取 user1 邀请他的警告或弹出消息。

我所做的是 -

user1 邀请时,该消息存储在数据库中。在用户方面我用来检查是否 数据库是否更新。如果数据库是更新我用于显示警报。这是我在php和javascript上完成的,但不是一直都在工作。

这是一个好方法吗?还有其他方法吗?

4 个答案:

答案 0 :(得分:2)

使用Ajax定期向服务器发送请求。响应将包含用户拥有的任何邀请。响应可能在JSON中,可以在JavaScript中轻松评估。

答案 1 :(得分:1)

所有客户端都可以使用jquery并定期发送以下请求:

function checkIfIAmInvited()
{
     jQuery.ajax({
       type: "POST",
       url: "some.php",
       data: "name=currentUser&",
       success: function(msg){
         if(msg.indexOf('uninvited') !== -1 )
         {
            alert( "You have been invited by " + msg );
            //Method to do stuff once I am invited
            iAmInvitedMethod();
         }
     });
}

要定期调用上面的代码,您可以在jquery / javascript中使用以下代码。这将定期拨打电话并将响应发回给您。一旦响应没有包含“未经邀请的”字符串,它就会发出警报并调用post方法函数。

可以使用以下代码重复调用。

window.setInterval("checkIfIAmInvited()", 5000);

如果有任何邀请,这将每5秒检查一次。或者为了更好的控制,可以使用像Timer这样的jquery插件重复执行某些东西。

答案 2 :(得分:1)

使用(至少)两次数据库旅行是处理实时聊天的一种糟糕方式。如果你正在做一些存储聊天又称msging系统,那很好。但是考虑到你只需要坚持一两秒钟的文本,我就会在内存解决方案中使用SQL-Lite或其他。它会在您的服务器上更快更容易。

答案 3 :(得分:1)

对于聊天和即时消息系统,您应该研究使用Comet等基于Push的技术。 this thread中的更多信息:使用jquery的实现。