¿Es aconsejable usar HTML5 y Node.js para programar una aplicación de chat móvil?

En Figma, ejecutamos algunos servicios de comunicación basados ​​en Node.js. Podría ser una buena opción, pero hay algunos ángulos a considerar.

  1. ¿Nativo o web? Una aplicación web habilitada para dispositivos móviles es fácil de encontrar para los usuarios y comenzar a usarla de inmediato. Android e iOS funcionarían de la misma manera, una gran ventaja porque no habría necesidad de escribir y mantener dos aplicaciones nativas diferentes. Sin embargo, la ruta HTML5 tenía inconvenientes. Probablemente consumirá más batería que una aplicación nativa y el rendimiento está muy influenciado por la forma en que se escriben JavaScript y CSS. No podrá aprovechar los servicios de notificación basados ​​en inserción a menos que sea nativo, y cuando los usuarios cierren el navegador, los desconectará del chat. Una aplicación híbrida podría funcionar mejor, ya que la mayor parte de la capa de presentación del chat se escribe usando HTML5, pero las comunicaciones de red se escriben de forma nativa. Entonces solo necesita reescribir algunas partes para cada plataforma móvil nativa. Cualquiera de las vías tendrá que lidiar con una conectividad irregular almacenando en caché los mensajes que pueden “ponerse al día” con el cliente antes de la reconexión.
  2. Node.js en el backend? Esta es una buena opción porque Node es excelente para manejar muchas conexiones que tienen poco tráfico. La desventaja es que Node solo se ejecutará en un subproceso de CPU a la vez, por lo que si está creando más de unos pocos miles de conexiones activas concurrentes, es posible que tenga que pensar en ejecutar un clúster de procesos y tal vez descubrir una comunicación entre procesos sistema. Go lang ya tiene esto en la biblioteca de la clase base y podría ser más adecuado. La recolección de basura en Node también puede causar una congelación aleatoria temporal durante unos segundos, por lo que si esa pequeña pérdida de disponibilidad es importante, considere una alternativa compilada como Rust. El tamaño de almacenamiento dinámico de Node y otras características de manejo de memoria pueden controlarse mediante argumentos de línea de comandos, pero las aplicaciones de larga duración en Node pueden consumir rápidamente toda la memoria disponible en una máquina. Tenga cuidado con las pérdidas de memoria y considere usar el Script mecanográfico para ayudar a prevenirlas. Además, y no puedo enfatizar esto lo suficiente, debe usar un proxy front-end como nginx. Esto ayudará a asegurar su servicio y lo hará más inmune a los clientes lentos.

Entonces sí, es factible, pero hay compensaciones clave a considerar. Además, la dificultad principal no tendrá mucho que ver con HTML5 o Node: se tratará con interrupciones de conexión del cliente, problemas de monedas como el pedido de mensajes y la gestión operativa del lado del servidor.

Puedes hacer que funcione, si eso es lo que quieres decir.

More Interesting

¿Cuáles son las empresas de desarrollo de aplicaciones iPad asequibles en la India?

¿Cómo prueban Apple, Microsoft y HTC sus aplicaciones móviles? ¿Cómo automatizan este proceso?

¿Cómo se construye una aplicación de chat móvil desde cero? ¿Qué habilidades se requieren?

¿Es posible construir una aplicación sin codificación?

¿Cómo probar una idea de aplicación móvil antes de invertir dinero o tiempo en el desarrollo de la aplicación?

¿Qué tipos de aplicaciones se incluyen en los servicios de desarrollo de aplicaciones de Android?

¿Cuáles son los factores que deciden el costo de desarrollo de la aplicación de Android?

¿Cómo genera su equipo UX patrones de diseño (que se convierten en especificaciones) y comunica las especificaciones entre los equipos de productos durante los ciclos paralelos de desarrollo de productos?

Digamos que has creado una aplicación móvil. ¿Otra persona no copiará esta aplicación y habrá variaciones? ¿Cuál es el punto de copyright de su aplicación?

¿Debo elegir iOS, Android o Windows Mobile para desarrollar mi aplicación móvil?

¿Qué libro debo leer para crear mi aplicación ya que no soy programador?

¿Es posible crear una aplicación móvil en un lenguaje ensamblador?

¿Cuál es la mejor agencia de desarrollo de aplicaciones móviles de Windows en Montreal?

¿Quora necesita necesariamente su sitio o aplicación móvil?

¿Cuáles son las ventajas y desventajas de desarrollar su propia aplicación de administración de registros en contra de comprar una en el mercado en línea de SharePoint?