El problema es que WebSockets está diseñado para procesos/procesos de larga ejecución que mantienen múltiples conexiones controladas por eventos, mientras que PHP (y su cohorte Apache) se diseñó alrededor del paradigma de proceso único de corta duración (por ejemplo max_execution_time
is commonly set to 30 seconds, y la sesión tiene un solo hilo).
Eso no quiere decir que sea imposible escribir una implementación del servidor WebSockets en PHP. Soy consciente de que existe al menos un proyecto que tiene done exactly this (pero tenga en cuenta que incluso este ejemplo se ejecuta desde la línea de comandos, no a través del mod_php
). Pero es probable que la implementación PHP de WebSockets sea incompatible con la configuración del hosting barato/compartido donde PHP se usa con mayor frecuencia.
Si bien es posible en PHP, terminas teniendo que ejecutar un proceso de servidor por separado (de Apache) de todos modos, y si estás en el tipo de hosting que permite procesos de servidor separados, entonces es más fácil escribir WebSockets código en algo que está diseñado para programación dirigida por eventos.
Si no tiene planeado atender a decenas de miles de conexiones dúplex concurrentes, es probable que sea mejor utilizar una combinación de AJAX y SSE con su back-end de PHP.
Quizás le interese leer sobre NodeJS y socket.io. Depende de su proyecto, pero podría darle lo que necesita: [nodejs.org] (http://nodejs.org) [socket.io] (http://socket.io) – imperium2335