我正在用 PHP + Mysql 开发聊天应用程序。
我的想法是我在后台(ajax)中打开脚本,它将继续加载一分钟以检查用户是否收到任何新消息。
这里是
$start = time();
while(time() - $start < 60)
{
$result = mysql_query("SELECT * FROM messages WHERE `to` = '$me_user'");
if(mysql_num_rows($result))
{
$row = mysql_fetch_array($result);
$id = $row['id'];
$from = $row['from'];
$time = $row['time'];
$msg = $row['message'];
mysql_query("DELETE FROM messages WHERE id = $id");
die("appendMsg('$msg',to,'$time');");
}
$result = null;
Sleep(2);
}
所以实际上它每 2 秒检查一次新消息。
但我的问题是整个网站因此而开始“滞后”。我认为问题出在 Sleep() 中。
有时甚至 PHP 在尝试连接到数据库时也会超时。
致命错误:第 19 行的 C:\xampp\htdocs\chatly\config.php 中超过了 30 秒的最大执行时间
有什么建议我怎么能暂停 2 秒?或者您认为通过 ajax 每 2 秒发送一次新请求会更好?