Socket io
💡 Socket io es una librería escrita sobre JavaScript (hay implementaciones para otros lenguajes) que habilita comunicación bidireccional, de baja latencia y basada en eventos entre un cliente y un servidor.
Esta librería está construida sobre el protocolo WebSockets, pero incluye algunas características extra (por ejemplo HTTP Long-Polling Fallback y reconexión automática), que en el caso de no usar esta librería, tendríamos que implementar manualmente.
Socket io puede ser implementada en muchas plataformas, tanto el cliente como en el servidor. Tiene como ventaja que permite comunicar clientes web o desktop con servidores en tiempo real.
Algo que debemos tener en cuenta, es que a pesar que esta librería usa el protocolo WebSockets, la misma no es una implementación de WebSockets. Esto debido a que la librería añade metadatos adicionales a este protocolo. Por lo cual, socket io está construido sobre este protocolo, pero no es tal cuál una implementación del mismo.
💡 Esta librería no debería ser usada en background de aplicaciones móviles, debido a que mantiene una comunicación TCP abierta, lo que puede provocar un alto consumo de la batería.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?