Я узнал о длительном опросе и, немного прочитав об этом, немного запутался. Я посмотрел объяснения here и hereДлинный опрос путаницы
Я не совсем понимаю, в чем дело в том, чтобы засыпать сервер до ответа. Я знаю, что идея состоит в том, чтобы попытаться сохранить соединение открытым между клиентом и сервером, но во второй ссылке с наивысшим приоритетным примером php он имеет фрагмент кода, где сервер просто вызывает сон в течение некоторого времени.
<?php
/* Send a string after a random number of seconds (2-10) */
sleep(rand(2,10));
echo("Hi! Have a random number: " . rand(1,10));
?>
Что именно делает сон? Разве это не делает так, что каждый раз, когда вы отправляете запрос, он просто будет спать первым (что делает сервер ничего не делает), а затем отвечает, делая его точно таким же, как стандартный HTTP-запрос, но гораздо медленнее? Я не вижу, как это помогает поддерживать соединение, если сон просто заставляет сервер ничего не делать в течение некоторого времени. Не нужно ли длительному опросу отвечать клиенту при получении новой информации?
Я вижу. Но на сервере, если вы просто вызываете sleep (x), разве это не полностью остановит работу сервера в течение x времени? [link] (http://www.w3schools.com/php/func_misc_sleep.asp). Мы хотим, чтобы поток сервера спал и одновременно извлекал данные, которые мы хотим отправить клиенту? – user3125693