php html5 apache websocket phpwebsocket

websocket php mysql



Usando WebSocket en el servidor Apache (4)

Con todo el alboroto alrededor de WebSockets, es bastante difícil encontrar un buen tutorial sobre cómo usarlos con un servidor Apache en Google.

Estamos desarrollando un complemento, en PHP (symfony2), que se ejecutará de vez en cuando como una instancia de chat. Y encontramos que WebSockets es más interesante, estándar y rápido que AJAX en este sentido. El problema es que no tenemos muchos recursos de administrador de sistemas en nuestro grupo y nos resulta difícil reunir buena información sobre los siguientes asuntos:

  • ¿Podemos ejecutar una instancia de WebSocket en un servidor dedicado de Apache tradicional? En caso afirmativo, ¿tiene enlaces útiles para nosotros?
  • Si necesitamos modificar el servidor, ¿qué tipo de herramientas recomendaría saber que no somos muy hábiles en sysadmin por lo que no podemos darnos el lujo de tener un alto mantenimiento b *** en esto.

Muchas gracias,

PD: enlazaremos con su blog / sitio para realizar una publicación técnica / informativa en nuestro devblog sobre esta parte de nuestra aplicación.

¡Gracias de nuevo!


Como afirma @zaf, es más probable que encuentres una solución de PHP independiente, no algo que se ejecute en Apache. Eso dijo que hay un módulo de Apache WebSocket .

Sin embargo, el problema fundamental es que Apache no se creó teniendo en cuenta muchas conexiones persistentes en mente. Junto con PHP, se basa en la idea de que las solicitudes se realizan y las respuestas se envían rápidamente. Esto significa que los recursos se pueden agotar muy rápidamente si mantiene abiertas las solicitudes y tendrá que examinar las escalas horizontales con bastante rapidez.

Personalmente creo que tienes dos opciones:

  1. Utilice una solución alternativa de tecnología web en tiempo real y comuníquese entre su aplicación web y la infraestructura web en tiempo real utilizando colas o solicitudes de corta duración (servicios web).
  2. Descargue el manejo de las conexiones persistentes y la ampliación de la infraestructura web en tiempo real a un servicio alojado en tiempo real. Yo trabajo para Pusher y caemos en esta categoría.

Para las opciones alojadas y hospedadas por usted mismo, puede consultar mi guía de tecnología web en tiempo real .


Introduje otro servidor websocket: PHP Ratchet ( Github ).

Esta es una lista mejor y más completa de los códigos del lado del cliente y del servidor y el soporte del navegador.

Por favor revisa este link .


Otra ruta es usar un servidor websocket dedicado.

Pruebe Achex Websocket Server en www.achex.ca y revise los tutoriales.

O

Si realmente quieres Apache, echa un vistazo a Apache Camel . (pero tienes que configurarlo y es un poco más complicado que el servidor achex) http://camel.apache.org/websocket.html


Una ruta es usar un servidor de sockets web instalado independiente.

Para PHP puede probar: http://code.google.com/p/phpwebsocket/ o http://github.com/Devristo/phpws/

Hay algunos otros proyectos que puedes probar también.

Básicamente, debe cargar, descomprimir y comenzar a ejecutar el proceso.

En la interfaz, tendrá javascript que se conecta al servidor en el puerto específico.

La mayoría de los servidores websocket tienen una demostración que repite todo lo que escucha, por lo que este es un buen lugar para escribir un código de prueba. Incluso puede encontrar una implementación de chat rudimentario.

La parte difícil es monitorear el servidor de socket web y asegurarse de que funcione sin problemas y de forma continua.

Intente probar en tantos navegadores / dispositivos como sea posible ya que esto decidirá en qué implementación de servidor websocket usted elige. Hay protocolos viejos y nuevos que debes tener en cuenta.