1

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

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

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

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

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

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

4

1 回答 1

3

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

于 2012-09-29T20:49:16.857 回答