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


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

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

Author: Jim_CS, 2012-07-09

2 answers

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

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

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

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

 7
Author: robertc, 2012-07-11 21:11:28

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

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

 0
Author: polo, 2012-07-12 14:45:15