Actualmente estoy desarrollando una aplicación PHP que va a usar websockets para la comunicación cliente-servidor. He escuchado numerosas veces que PHP no se debe usar para aplicaciones de servidor debido a la falta de mecanismos de subprocesamiento, a su administración de memoria (referencias cíclicas) o a la biblioteca de socket desagradable.Servidor Websocket con PHP
Hasta ahora, todo está funcionando bastante bien. Estoy usando phpws como la biblioteca websocket y Doctrine DBAL para acceder a diferentes sistemas de bases de datos; PHP es la versión 5.3.8. El servidor debe servir a un máximo de 30 clientes. Sin embargo, especialmente en los últimos días, he leído varios artículos que indican la ineficacia de PHP para aplicaciones de larga ejecución.
Ahora no estoy al tanto de si debo continuar usando websockets con PHP o reconstruir toda la aplicación del servidor. He probado Python con Socket.IO, aunque no obtuve los resultados que esperaba.
supongo que tengo las siguientes opciones:
- mantener todo como está.
- Haga que la aplicación use Ajax en combinación con Socket.IO - p. ejecutar un script en el servidor que invoca las llamadas ajax del cliente cuando los datos se envían al servidor.
El último punto parece bastante interesante, aunque requeriría algo de trabajo ... ¿Sería un problema para los servidores ejecutar todas las solicitudes de los clientes a la vez?
¿Qué recomendarías? ¿Sigue siendo válido el problema con la gestión de memoria de PHP (estoy usando gc_collect cada vez que un cliente envía datos al servidor)? ¿Existen otros motivos además de las razones obvias (sin hilos, ...) para no usar PHP como servidor?
¿Entonces está preguntando si debería eliminar su diseño actual y funcional? Las preguntas como esta no son realmente válidas aquí, vas a tener que decidir qué codificar en ti. ¿Qué otros lenguajes del lado del servidor conoces? Publique su código python y alguien puede ayudarlo a encontrar el problema si decide reescribir su código. – xthexder