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


refresh web page for one user after event in another user's browser

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

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

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

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

我一直在考虑的另一种方法是对函数进行 AJAX 调用,在用户进入页面时以某种方式传递上次收到的消息的日期时间,然后检查是否有较新的消息,如果为 true,则刷新页面。如果我设法让它工作,这还不错,但仍然意味着此页面中的其他问题以及正在发生的其他事情。

还有其他方法可以做到这一点吗?

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