Я разрабатываю приложение чата в PHP + Mysql.Таймауты 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 при попытке подключения к БД.
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\chatly\config.php on line 19
Любое предложение, как я могу приостановить на 2 секунды? Или вы думаете, что лучше отправить новый запрос каждые 2 секунды через ajax?
почему бы вам не попробовать сделать это с помощью AJAX? – Memolition
, потому что я думал, что будет меньше ресурсов, если у меня будет загрузка скрипта в течение 60 секунд, которая будет проверять новое сообщение каждые 2 секунды. Вы думаете, что если бы ajax сделал запрос, каждый 2s был бы лучше? –
Да, пользователь может использовать эту страницу без каких-либо задержек – Memolition