Estoy trabajando en una aplicación que necesita notificar al usuario cuando recibe una nueva notificación. La aplicación se hospedará en Azure y será .NET MVC 3 (probablemente no es importante, pero para su información). TambiénNotificaciones push de SignalR a todas las instancias del navegador de un solo usuario autenticado
Las notificaciones se guardan en un MSBQL db (2008) y tienen un campo IsRead
. Las notificaciones se generan a partir de diversas acciones de usuario y servidor. Según las preferencias del usuario, algunas notificaciones se crearán con IsRead == false
.
tengo 2 escenarios diferentes que siento que SignalR será perfecto en el manejo, que sólo necesita un poco de orientación:
- usuario tiene varias ventanas abiertas navegando por el sitio y una nueva fila de notificación se añade, asignado a ese usuario, con
IsRead == true
- me gustaría que todas las instancias del navegador del usuario específica para tener una función específica llamada js para revelar una notificación emergente
- usuario tiene varias viento Abre y hace clic en la ventana emergente de notificación.
- Me gustaría que todas las instancias de navegador del usuario específico tengan una función js específica llamada para eliminar la notificación emergente. (Sólo la instancia del navegador específico que maneja el clic también se ejecutará una función js para mostrar los detalles de notificación)
Lo que he tratado
Para el primer escenario, creo que la misma acción que causa que la notificación se escriba en la base de datos tendrá la responsabilidad de notificar todas las instancias del navegador del usuario.
El segundo escenario sería similar, al hacer clic en el elemento emergente, un punto final del servidor se llamaría mediante Ajax y ese punto final actualizaría el db para marcar la notificación como leída y luego notificaría todas las instancias del navegador del otro usuario .
Si hay una manera de hacer un seguimiento de los clientes SignalR basado en formularios de ASP.NET de autenticación de nombre de usuario, entonces creo que va a trabajar en la solución de los problemas en ambos escenarios.
TL; DR
Mi principal problema es que no sé cómo la señal de todos los casos del navegador de un usuario específico utilizando SignalR. Estaba pensando en crear un grupo basado en el nombre de usuario de Autenticación de formularios ASP.NET. ¿Esto funcionaría? ¿Hay alguna manera más sencilla que esté integrada en SignalR que maneje esto?
Gracias por su comentario. ¡Lo probaré y veré cómo funciona! –
¡Eso funcionó muy bien! Gracias :) –