Intentaré hacer que mi primera publicación sea lo más interesante posible.Servidor WebSocket en PHP sin daemons?
Últimamente he estado interesado en la viabilidad de manejar las solicitudes de WebSocket en un servidor de alojamiento compartido.
No me digas "mejora tu plan". Todo esto sería trivial en al menos un VPS. Me di cuenta que.
Como muchos saben, los servidores compartidos se ...
- Matar a un demonio si ven uno
- el uso de bloques de sockets de servidor
- Denegar el acceso de desembolsar
- Mantener fuera del alcance de apache (no hay instalaciones de módulos)
Estas restricciones eliminan por completo a phpwebsocket, python. Se necesita una solución no demoníaca que se disfrace de página web.
PHP siendo mi idioma favorito del lado del servidor, diseñé un gateway websocket de PHP que se hacía pasar por una página web.
Hasta ahora he tenido éxito al enviar los encabezados correctos para el handshake y la salida de transmisión (usando buffer de salida), pero todavía no puedo encontrar la manera de continuar leyendo datos después de la solicitud inicial.
En resumen, quiero seguir recibiendo datos del cliente incluso después de que se inicie el script PHP. He intentado leer el php: // input pseudofile, pero parece que no puedo obtener más lecturas después del final del GET. ¿Hay algún ajuste o hack que permita esto?
Gracias!
Si no tiene un daemon, ¿qué manejaría exactamente el tráfico en el websocket? Esto suena como una receta para la frustración en el mejor de los casos ... – sarnold
Apache es el daemon. Llamará a mi script php cuando entre una conexión de websocket. – user1354999
Apache estará feliz de obtener scripts que tardan demasiado en ejecutarse; ¿Estás bien trabajando solo de tres a cinco minutos más o menos? – sarnold