¿Qué aspectos de Node.js lo hacen adecuado para aplicaciones web en tiempo real?

Las aplicaciones web en tiempo real requieren capacidades de inserción HTTP, mientras que HTTP, por naturaleza, solo está orientada.

Las diferentes formas existentes de resolver que inicialmente se agruparon bajo el término “Cometa”. Usó iframes, etiqueta de script o solicitud XHR con codificación de transferencia Chunked casi interminable o sondeo largo.

HTML5 presentó otras 2 soluciones más estandarizadas:
– Eventos enviados por el servidor
– La API de WebSocket

Casi cualquier solución con la que venga, tendrá que enfrentar un problema importante: se requiere una conexión mantenida, y en la mayoría de las plataformas web existentes, significó un proceso dedicado por visitante con su costo de memoria dedicado

El entorno de bucle de eventos de un solo hilo de node.js no era solo uno de su tipo, sino que hacía que este paradigma fuera accesible en el servidor para una gran comunidad de desarrolladores con una manera muy fácil de compartir contribuciones.

Con este tipo de solución, el costo de las conexiones mantenidas ya no está relacionado con el peso de la memoria de subprocesos, sino con el insignificante de los sockets, por lo que cuando se estandarizaron los Web Sockets, se realizó una de las primeras “Pruebas de concepto” con el nodo. js y a menudo sirvió como referencia.

Luego vino Socket.IO, que proporciona un buen polyfil para sockets web, y un módulo node.js para el servidor, como algunas aplicaciones PHP o Java, comenzaron a comunicarse con un proceso de nodo para trabajar con conexiones Web Socket. También puede elegir sockjs o en un nivel superior Meteor.

Wakanda, todavía en la familia JavaScript del lado del servidor, eligió otro enfoque para estar más orientado a los estándares web mediante la implementación de Web Workers en el servidor y luego manejar las conexiones de Web Sockets en un solo Shared Workers (potencialmente en cada canal) para la comunicación en tiempo real, mientras aún permitiendo múltiples subprocesos con trabajadores dedicados para solicitudes HTTP regulares

Node maneja las E / S de una manera excelente. Por ejemplo, con Node, puede leer / escribir secuencias en sockets y HTTP. Esto es importante para las aplicaciones web en tiempo real. Además, es adecuado para aplicaciones que requieren muchas conexiones simultáneas, como chats, juegos en línea, etc. Es por eso que es muy adecuado para aplicaciones web en tiempo real. Lea más sobre cómo Node.js maneja los bucles de eventos y las E / S en el siguiente enlace: Comprensión del bucle de eventos de node.js

Es el modelo de programación sin bloques de Node.js que lo hace adecuado para aplicaciones en tiempo real.
El nodo no bloquea, por lo que puede manejar muchas conexiones abiertas simultáneas.

More Interesting

¿Cuál es la diferencia entre un identificador uniforme de recursos y un localizador?

¿Cómo se usan exactamente cosas como bucles y funciones en el desarrollo web? Por favor, da un ejemplo simple.

¿Cuáles son los sitios web más grandes que usan Backbone.js?

¿Cuál es la mejor manera de convertir mis páginas web en una aplicación móvil?

¿Cómo debo configurar un sitio web / aplicación web para mostrar mis habilidades y proyectos para aplicaciones de trabajo de desarrollador web?

¿Qué aspectos de Node.js lo hacen adecuado para aplicaciones web en tiempo real?

¿Cuál es el concepto principal para crear archivos EAR en Java?

¿Qué marco web usarías para crear un sitio web de clones de Udemy y por qué?

¿Qué es una aplicación de Windows que puede organizar mi biblioteca de música y hacer lo siguiente?

Al implementar un sitio web / aplicación web, ¿debo colocar la aplicación y la API en el mismo servidor?

¿Crees que Ruby on Rails es mejor que los marcos PHP para un sitio de red social similar a Facebook?

¿Cuál es la mejor manera de lanzar la primera startup?

¿Cuál es la ventaja de usar ASP? NET sobre otros marcos de aplicaciones web?

¿Existen aplicaciones web que le permitan crear listas de tareas personales que puedan compartirse con otros (otros usuarios o públicamente a través de un enlace)?

¿La mayoría de las nuevas empresas tecnológicas construyen sus productos sobre un marco base que les permite administrar el producto en el back-end, o simplemente construyen sus propios back-end?