Как facebook предотвращает превышение max_execution_time при длительном опросе пустых ответов?

Итак, как facebook возвращает код состояния 200, когда нет новых сообщений/обновлений?

Я пробовал долгий опрос, и он работает. единственная проблема, с которой я сталкиваюсь прямо сейчас, заключается в том, что я сталкиваюсь с внутренней ошибкой сервера 500 (превышено max_execution_time), когда опрос ничего не возвращает.

Я не хочу изменять «max_execution_time» опроса, но я хочу вернуть код состояния 200 OK, даже если нет новых сообщений/обновлений.

Изменить:
Я читал из разных источников, включая stackoverflow (извините, я прочитал слишком много и не смог процитировать все здесь), где говорится, что я должен вернуть пустой ответ на получить код состояния 200.

Теперь новая проблема:

Как я могу вернуть пустой ответ тела, пока нет нового сообщения/обновления (пока цикл «пока» работает и вот-вот достигнет max_execution_time), чтобы предотвратить 500 внутренних ошибок сервера (превышено max_execution_time).

Проще говоря:
как вернуть пустой ответ до того, как цикл while достигнет тайм-аута.


person Seighth Hellsing    schedule 19.09.2017    source источник
comment
1. Не совсем вопрос по тегу facebook. 2. Вы предполагаете, что они будут использовать PHP для этого - сомнительно ИМХО.   -  person CBroe    schedule 19.09.2017
comment
извините, я просто отметил фейсбук, потому что я имею в виду чат фейсбука.   -  person Seighth Hellsing    schedule 19.09.2017


Ответы (1)


Хорошо, я нашел обходной путь или изящное или, скорее, неприятное решение, ха-ха!

Комментарий пользователя по имени Adeel в этой ветке. дал мне идею.

Что я сделал, так это установил время на будущее через 30 секунд:

$future = date("Y-m-d H:i:s", strtotime("+30 seconds"));

while ($last_number < $new_number){
    $now = date("Y-m-d H:i:s");
    if($now == $future){
        break 1;
    }

    //some codes for iteration and updating $last_number in this while loop
}

echo json_encode();

Я не знаю, лучший ли это способ достичь того, что я задумал, но пока это единственный способ, который сработал.

Если у вас, ребята, есть лучшие решения, я был бы рад узнать.

Так что, в конце концов, мне просто пришлось вырваться из петли, ха-ха, как глупо ты

person Seighth Hellsing    schedule 19.09.2017