Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在另一个用户的事件发生后刷新一个用户的网页';s浏览器_Php_Events_Cakephp - Fatal编程技术网

Php 在另一个用户的事件发生后刷新一个用户的网页';s浏览器

Php 在另一个用户的事件发生后刷新一个用户的网页';s浏览器,php,events,cakephp,Php,Events,Cakephp,我在这个网站上用PHP在两个用户之间实现了一个非常简单的消息传递系统(更准确地说是使用CakePHP) 一切正常,一个用户发送消息,另一个用户接收消息。唯一的问题是第二个用户必须刷新页面才能看到消息 当第一个用户发送消息时,我是否可以告诉第二个用户的浏览器刷新?消息存储在MySQL数据库中。当用户转到消息页面时,我会显示从最后一条到第一条属于他的所有消息,并从数据库中提取它们 简单的方法是使用javascript函数定期刷新页面,但这不是最好的解决方案,可能会让用户感到恼火。理想情况下,当用户收

我在这个网站上用PHP在两个用户之间实现了一个非常简单的消息传递系统(更准确地说是使用CakePHP)

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

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

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

我一直在考虑的另一种方法是对函数进行AJAX调用,在用户进入页面时以某种方式传递上次收到的消息的日期时间,然后检查是否有新消息,如果是,则刷新页面。如果我能成功的话,这还不错,但这仍然意味着在这个页面上还有其他问题


还有其他方法吗?

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

我认为你应该使用定期
ajax
check。如果你通过ajax定期检查新消息,你会遇到什么“其他问题”?您必须有一些连接才能从服务器到客户端获取数据,其他获取数据的方法可能是WebSocket或类似Comet的连接。