notification net mvc example asp asp.net asp.net-mvc-3 push-notification signalr

asp.net - net - Use Signalr para tener un sistema de notificación como facebook



signalr sql server notification (2)

Quiero implementar un sistema de notificación como Facebook en ASP.NET MVC 3: las notificaciones se envían a un usuario específico para notificarlo sobre una acción en uno de sus artículos.

¿El señalizador es adecuado para tal requisito? ¿Cómo podría enviar una notificación a un usuario específico (todas las sesiones abiertas de este usuario) usando SignalR?

Editar

Ok, aquí lo que hice

En el lado del cliente

$(function () { // Proxy created on the fly var chat = $.connection.chat; var username = ''@Html.ViewContext.HttpContext.User.Identity.Name''; // Declare a function on the chat hub so the server can invoke it chat.addMessage = function (message) { $(''#messages'').append(''<li>'' + message + ''</li>''); }; // Start the connection $.connection.hub.start(function (){ chat.join(username); }); });

En el lado del servidor

public class Chat : Hub { public void Join(string username) { AddToGroup(username); } }

Y cada vez que necesito notificar a un usuario en el controlador hago lo siguiente:

IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>(); dynamic clients = connectionManager.GetClients<Chat>(); clients[username].addMessage("test");



Sí, SignalR es una buena opción para eso. Eche un vistazo a la documentación relacionada con Hubs ( servidor y cliente JS ).

Debe implementar la lógica del servidor para asociar la sesión de su cliente con la sesión de SignalR. Puede usar grupos para notificar todas las sesiones abiertas de cada usuario.