Socket.IO es un marco que utiliza la API de WebSocket. WebSocket define una conexión persistente y casi en tiempo real entre el cliente y el servidor, lo que significa que ambos deben estar escuchando todo el tiempo. Siempre están algo “ocupados”.
En Node.js esto no es un problema en absoluto, ya que la naturaleza de Node no se bloquea y se basa en eventos. Eso significa que si no hay mensajes entrantes, el nodo no está haciendo nada. Se ejecuta en un solo hilo y puede servir muchas conexiones al mismo tiempo.
PHP por otro lado, funciona basado en solicitudes. Cuando llega una solicitud, inicia un proceso, determina con qué necesita responder y luego se cierra. Tener miles de conexiones simultáneas en PHP es poco probable porque estas solicitudes generalmente se procesan con bastante rapidez.
- ¿Cuál es el código PHP para el motor de búsqueda?
- Para el desarrollo web, ¿podemos usar Java en lugar de JavaScript?
- ¿Cuáles son las ventajas y desventajas de usar una aplicación de una sola página?
- ¿Cuál es la diferencia entre un nombre de dominio y un servicio de alojamiento web? ¿Puedes por favor cómo se relacionaron cuando alojamos un sitio web?
- ¿Cuánto tiempo esperará el usuario promedio a que se cargue una página web antes de abandonar?
Esto se reduce a que, para PHP, tener sockets web no es eficiente para el servidor, si es posible. En cuanto a alguien que intenta hacer un equivalente, no hay razón para no intentarlo, pero solo necesita escribir su lado del cliente en JavaScript mientras el código del sitio del servidor está en PHP. Esa es otra ventaja de Socket.IO y node.js: el código se puede compartir entre el cliente y el servidor.