es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agrupando notificaciones

Tengo un sistema de mensajería de chat simple donde los usuarios pueden enviar mensajes privados entre sí. Utiliza SignalR para enviar los mensajes de chat y luego los mensajes se almacenan en una base de datos en este formato:

SenderId | RecipientId | Mensaje | SentDateTime | RecipientHasRead

Actualmente, cuando el usuarioA envía un mensaje a usuarioB, el servicio SignalR envía inmediatamente una notificación push a usuarioB al mismo tiempo que guarda el mensaje en la base de datos.

UsuarioB puede verse abrumado con muchas notificaciones. Necesito alguna manera de agrupar las notificaciones.

Por ejemplo, actualmente UsuarioB recibiría las siguientes notificaciones:

10:00am: UsuarioA te ha enviado un nuevo mensaje
10:01am: UsuarioA te ha enviado un nuevo mensaje
10:01am: UsuarioA te ha enviado un nuevo mensaje
10:01am: UsuarioC te ha enviado un nuevo mensaje

Preferiría que UsuarioB reciba algo como esto:

10:01am: Tienes 4 mensajes no leídos

¿Cuáles son algunas técnicas para implementar esto? ¿Debería ejecutar un trabajo cada 5 minutos para verificar los mensajes no leídos de un usuario dado en los últimos 5 minutos y enviar esa información?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una técnica para implementar esto sería usar una demora antes de enviar la notificación push al Usuario B. Esta demora podría establecerse por un tiempo determinado, como 5 minutos, para dar tiempo adicional para que lleguen más mensajes de otros usuarios. Luego, después de que haya pasado el tiempo de demora, se enviaría la notificación push al Usuario B con un conteo de los mensajes no leídos que ha recibido en los últimos 5 minutos.

    Otra técnica sería utilizar un proceso por lotes para verificar periódicamente los mensajes no leídos de un usuario dentro de un determinado período de tiempo, como los últimos 5 minutos, y enviar una sola notificación push con un conteo de los mensajes no leídos. Este enfoque sería más consistente y predecible, pero requeriría configurar y mantener el proceso por lotes.

    En última instancia, la elección entre estas técnicas dependería de los requisitos específicos del sistema de mensajería de chat y las preferencias de los usuarios.

Comments are closed.