Являются ли веб-сайты подходящими для использования с PHP?

Я видел, как он упоминал в разных местах по всему Интернету, что веб-сайты HTML5 не очень хорошо работают с PHP, что PHP по своей природе подходит для использования с ними. С другой стороны, я вижу несколько руководств по использованию PHP с веб-сайтами, и Ive заметили реализацию PHP-websocket, такую ​​как http://code.google.com/p/phpwebsocket/

У кого-нибудь есть какая-то определенная информация об использовании веб-сайтов с PHP. Являются ли они полезными для PHP, каковы преимущества/недостатки использования их с PHP в отличие от Java или Python, и почему я читал множество людей, говорящих, что они плохо работают вместе?

Ответ 1

Проблема заключается в том, что WebSockets предназначены для длительных потоков/процессов, каждый из которых поддерживает несколько подключений, связанных с событиями, тогда как PHP (и его когорт Apache) был разработан вокруг процедурной парадигмы краткосрочного одиночного процесса (например, max_execution_time обычно устанавливается на 30 секунд, а сеанс однопоточный).

Это не означает, что невозможно написать реализацию сервера WebSockets в PHP. Я знаю, что существует хотя бы один проект, который выполнил именно это (но обратите внимание, что даже этот пример запускается из командной строки, а не через mod_php). Но вполне вероятно, что реализация PHP WebSockets несовместима с настройкой дешевого/общедоступного хостинга, где наиболее часто используется PHP.

Итак, хотя это возможно в PHP, вам все равно придется запускать отдельный серверный процесс (из Apache), и если вы находитесь на ходу, который позволяет разделить серверные процессы, тогда проще написать код WebSockets в чем-то, предназначенном для программирования, управляемого событиями.

Если вы не собираетесь обслуживать десятки тысяч одновременных дуплексных соединений, скорее всего, вам будет лучше использовать комбинацию AJAX и SSE с вашим исходным кодом PHP.

Ответ 2

Недавно я попробовал phpwebsocket, и он не работает в это время (php 5.4 и chrome), код ссылается на второй ключ в рукопожатии, который не существует в rev. 13 протокола websocket. У меня нет времени, чтобы прочитать RFC, чтобы понять, в чем дело.

Он уверен, что это решение является более элегантным и реактивным, чем AJAX с длинным опросом, но в настоящее время веб-узлы нестабильны. Думаю, было бы более интересно подождать, пока w3c объявит его стабильным.