Что вызывает очень медленный ответ AJAX?

Я написал некоторый код PHP, чтобы помочь мне подключиться к REST API для телефонной системы (т.е. ICWS.php.)

Затем, чтобы облегчить мне жизнь, я написал небольшой скрипт (т.е. interations.php), который принимает два параметра: метод и идентификатор. Этот скрипт будет вызывать публичный метод в моем коннекторе PHP.

Кроме того, у меня есть другой скрипт (т.е. poll.php). Этот скрипт будет пинговать API каждые полсекунды, чтобы узнать, доступно ли новое сообщение. Я использую опрос на стороне сервера, чтобы справиться с этим. Код ниже покажет, как poll.php

    while(1){
//process Messages
$icws->processMessages();
//show the Calls Queue
$result = $icws->getCallsQueue();
//$current = $icws->getCurrentUserStatusQueue();
echo 'event: getMessagingQueue' . "\n";
echo 'data: ' . json_encode( array('calls' => $result));
echo "\n\n"; //required

ob_flush();
flush();
putToSleep($sleepTime);

}
function putToSleep($val = 1){

if( is_int($val) ){
sleep($val);
} else {
usleep($val * 1000000);
}
}

Со своего сайта (например, phonesystem.html) я запускаю опрос на стороне сервера, «который проверяет API один раз каждые 1/2 секунды». С этой же страницы я также могу совершать другие прямые звонки (например, набрать 7204536695); все запросы выполняются через Ajax.

Вот мой код, который генерирует опрос на стороне сервера

    //Server Side Message Polling
function startPolling(){

var evtSource = new EventSource("poll.php");


evtSource.addEventListener("getMessagingQueue", function(e) {
var obj = JSON.parse(e.data);

if(!obj.calls || obj.calls.length === 0){
console.log('no messages');
phoneKeyPad(false);
return;
}
processMessages(obj.calls);

}, false);
}


$(function(){
startPolling();
});

Проблема, с которой я сталкиваюсь, заключается в том, что при вызове ajax ответ занимает слишком много времени (+1 минута).

Кажется, что сервер Apache замедляется, поскольку использование другого приложения становится немного медленнее.

Что я могу проверить и как я могу решить эту проблему?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]