2012-04-22 69 views
1

我有这个网站,我已经在PHP中使用2个用户之间实现了一个非常简单的消息系统(使用CakePHP更加准确)。在另一个用户的浏览器中刷新事件后的网页

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

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

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

我一直在想的另一种方法是做一个AJAX调用函数,通过某种方式传递最后收到的消息的日期时间,当用户进入页面,然后检查新的消息,如果为true,则刷新页面。如果我设法使它工作,这并不坏,但仍然会暗示其他问题与其他正在发生的事情有关。

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

+0

我想你应该使用定期的'ajax'检查。 – 2012-07-21 14:30:57

+0

如果您通过AJAX定期检查新邮件,您会得到什么“其他问题”?你必须有一些连接才能从服务器到客户端获取数据。其他方法可以是Websockets或类似Comet的连接。 – Carsten 2012-07-21 17:29:04

回答

3

查看Socket.io和Node.js.它们允许你做实时的事情,比如,socket.io向后兼容旧版浏览器。

相关问题