在另一个用户的浏览器中事件后刷新一个用户的网页

时间:2012-04-22 20:05:18

标签: php events cakephp

我有这个网站,我在PHP中的2个用户之间实现了一个非常简单的消息系统(使用CakePHP更准确)。

一切正常,一个用户发送消息而另一个用户收到消息。唯一的问题是第二个用户必须刷新页面才能看到消息。

当第一个用户发送消息时,有什么方法可以告诉第二个用户的浏览器刷新?消息存储在MySQL数据库中。当用户进入消息页面时,我会显示从最后到第一个属于他的所有消息,从数据库中提取它们。

简单的方法是制作一些定期刷新页面的javascript函数,但这不是最好的解决方案,对用户来说可能很烦人。理想情况下,当用户收到新消息时页面应该刷新...

我一直在考虑的另一种方法是对函数进行AJAX调用,以某种方式传递用户进入页面时最后收到的消息的日期时间,然后检查更新的消息,如果为true,则刷新这页纸。如果我设法让它工作,这也不会是坏事,但仍然会在这个页面中暗示其他问题与其他正在发生的事情。

还有其他办法吗?

1 个答案:

答案 0 :(得分:3)

查看Socket.io和Node.js.它们允许您执行诸如此类的实时操作,socket.io向后兼容旧版浏览器。