No estoy hablando de la aplicación general de chat, sino específicamente de la implementación de la sala de chat.Discusión: ¿la mejor forma de implementar una sala de chat con node.js/socket.io?
Así que en Node.js/socket.io, pensé en dos enfoques
Crear una matriz para cada sala de chat, mensaje de difusión a todos los usuarios en orden
retransmisiones todos los mensajes a todos los usuarios, en las PC de los clientes, determinan si pertenecen a la sala de chat, de ser así, acepten el mensaje.
La debilidad en 1 es que con el tiempo a medida que escala hasta que inundará la memoria del servidor con objetos de matriz, y utilizando sólo alrededor de 80 MB en mi alojamiento.
La debilidad en 2 es que transmitir a todo el mundo es costoso eventualmente e inundar las máquinas de los clientes no los hará felices.
Estoy seguro de que hay mejores enfoques sobre cómo implementar la sala de chat, por eso les pido que me ayuden. Estoy buscando rendimiento en el lado del servidor primero y luego en el lado del cliente, y debe ser escalable.
Con 80 MB puede crear una gran cantidad de salas de chat. Sus matrices solo necesitan contener los ID del usuario. ¿Hizo alguna prueba de consumo de memoria? – user123444555621
Hicimos un funcionamiento [sala de chat de varias habitaciones] (https://github.com/Raynos/so642). Es de código abierto, no dude en mirar. – Raynos
@ pumbaa80 cierto, pero 80mb se convierte en 20-30mb después de ejecutar muchos otros procesos o tareas cron que pueda necesitar, además, todavía no creo que sea una buena forma de escalar porque la memoria es costosa ... – Derek