Tieme приложил немало усилий, чтобы найти отличный ответ, но я думаю, что суть вопроса OP заключается в том, как эти технологии связаны с PHP, а не как каждая технология работает.
PHP является наиболее используемым языком в веб-разработке, помимо очевидной клиентской части html, css и javascript. Тем не менее, PHP имеет 2 основных проблемы, когда речь идет о приложениях реального времени:
1) PHP начинался как очень простой CGI. PHP продвинулся очень далеко с ранней стадии, но это происходило небольшими шагами. PHP уже имел много миллионов пользователей к тому времени, когда он стал встраиваемой и гибкой библиотекой C, которой он является сегодня, большинство из которых зависело от своей более ранней модели выполнения, поэтому он еще не сделал твердой попытки избежать модель cgi внутри. Даже интерфейс командной строки вызывает библиотеку PHP (libphp5.so в Linux, php5ts.dll в Windows и т. Д.), Как если бы она все еще была CGI, обрабатывающим запрос GET / POST. Он по-прежнему выполняет код, как будто ему просто нужно создать «страницу», а затем завершить свой жизненный цикл. В результате он очень мало поддерживает многопоточное или событийное программирование (в PHP-пространстве пользователя), что делает его непрактичным в настоящее время для многопользовательских приложений реального времени.
Обратите внимание, что PHP имеет расширения для предоставления циклов событий (например, libevent) и потоков (например, pthreads) в пользовательском пространстве PHP, но очень, очень немногие приложения используют их.
2) PHP по-прежнему имеет значительные проблемы со сборкой мусора. Хотя эти проблемы постоянно улучшаются (вероятно, это лучший шаг к завершению жизненного цикла, как описано выше), даже самые лучшие попытки создания долгосрочных приложений PHP требуют перезапуска на регулярной основе. Это также делает его непрактичным для приложений реального времени.
PHP 7 также станет отличным шагом для решения этих проблем и выглядит очень многообещающе как платформа для приложений реального времени.