Descripción del proyecto
TraducidoTécnicamente, esperamos transporte WebSocket para entrega en vivo con una opción de respaldo razonable y reconexión automática en caso de pérdida de conexión. Los mensajes deben persistir en la base de datos para que el historial de chat se cargue correctamente al reabrir una conversación, y la entrega debe ser ordenada y deduplicada incluso en redes inestables. Necesitamos un indicador de escritura, estados de 'entregado' y 'leído' para cada mensaje, contadores de no leídos por chat y presencia (en línea, última vez visto). Los archivos adjuntos son importantes: los usuarios deben poder enviar imágenes y documentos con vistas previas y límites de tamaño seguros. Cuando el destinatario está desconectado o la pestaña está cerrada, una notificación push les alerta del nuevo mensaje. El backend debe depender de nuestras cuentas de usuario actuales y permisos de acceso en lugar de introducir un sistema de autenticación separado.
Consideramos que la seguridad y la prevención de abusos son parte de la tarea: conexiones de socket autenticadas vinculadas a sesiones activas, verificaciones de permisos (un usuario solo lee hilos en los que participa), sanitización de entradas contra XSS al mostrar mensajes y limitación básica de tasa contra spam. Esperamos código limpio y documentado en nuestra pila actual, breves instrucciones de integración y pruebas para los principales escenarios.
— Chats privados y grupales con gestión de participantes
— Entrega WebSocket con reconexión y respaldo offline
— Indicador de escritura, estados de entrega/leído, contadores de no leídos, presencia
— Archivos adjuntos de imágenes y documentos con vistas previas y límites de tamaño
— Notificaciones push para destinatarios offline
— Historial, ordenación, deduplicación y persistencia de mensajes
— Sockets vinculados a sesiones, verificaciones de permisos por hilo, protección contra XSS, limitación de tasa