Какие преимущества дает длинный опрос в php? - PullRequest
1 голос
/ 27 августа 2011

Скажем, я создаю веб-чат, в котором сообщения чата хранятся в базе данных SQL (я не знаю, как еще это сделать), какие преимущества дает использование AJAX для длинного опроса вместо простого опроса каждые х секунд?

Поскольку PHP запускается только при открытии страницы, PHP-скрипт с длинным опросом должен будет также проверять наличие новых сообщений каждую секунду.Какие преимущества дает длительный опрос?В любом случае, у меня будет задержка x секунд, только при длительном опросе на сервере происходит периодическая проверка.

1 Ответ

3 голосов
/ 27 августа 2011

Длинный опрос, в вашем случае, имеет два преимущества:

Во-первых, длинный опрос позволяет клиентам получать обновления сообщений сразу после того, как они становятся доступными на сервере, что повышает скорость отклика вашего веб-чата.

Вторым преимуществом является то, что для работы в этом режиме в клиентском приложении не требуется никаких изменений.С точки зрения клиента, заблокированный запрос опроса выглядит как сетевая задержка, единственное отличие состоит в том, что клиенту не нужно ждать между отправкой запросов опроса, как если бы вы просто опрашивали каждые х секунд.


Однако , выполнение запросов на удержание сервера увеличивает нагрузку на сервер.Обычные веб-серверы с синхронной обработкой запросов используют один поток на каждый запрос, это означает, что ожидающий запрос блокирует поток, с помощью которого он обрабатывается.Таким образом, 100 клиентов чата, которые используют длинный опрос для получения обновлений сообщений с сервера, заблокируют 100 потоков.

Большинство этих потоков будут находиться в состоянии ожидания, но каждый поток по-прежнему использует значительное количество ресурсов.Эта проблема решается в Comet с помощью асинхронной обработки запросов, техники, позволяющей блокировать запросы без блокировки потока, которая теперь поддерживается несколькими веб-серверами, включая Tomcat.

Ссылка на мой ответ: oBIX Watch Communication Engineсправочный документ

...