Im работает над простым приложением чата, возможно от 10 до 20 пользователей в комнате.Простой PHP длинный скрипт чата для голосования, слишком простой?
Сценарий, запрашивающий базу данных для новых сообщений, выглядит слишком простым для всего запроса, который он получит.
Ниже приведен блок кода, который петли для новых сообщений, остальная часть скрипта просто получает переменные, построение запроса и объект ответа JSON:
$sleepTime = 1; //Seconds
$data = "";
$timeout = 0;
//Query database for data
while(!$data and $timeout < 10){
$data = getQuery($sql);
if(!$data){
//No new messages on the chat
flush();
//Wait for new Messages
sleep($sleepTime);
$timeout += 1;
}else{
break;
}
}
Блок выше будет запрашивать базу данных для новых сообщений каждую секунду в течение 10 секунд, если после 10 секунд новых сообщений не будет отправлено уведомление обозревателю. Браузер ждет 5 секунд, а затем отправляет другой запрос , чтобы получить новые сообщения.
Однако, если скрипт находит новые сообщения, браузер запрашивает новые сообщения мгновенно, как только он получит ответ с новыми сообщениями с сервера.
Этот процесс продолжается и на ...
Так как я могу оптимизировать этот процесс дальше? Насколько это хорошо? Работает нормально на моем локальном сервере, но я боюсь, что только несколько пользователей могут перегрузить живой сервер (общий хост) со всеми запросами и циклами.
Вот живой DEMO вы можете проверить с поджигатель http://pixbush.com/chat/chat.php
Простота - это то, что мы как программисты ** стремимся к **. –
Ссылка больше не работает. – kachar