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");
Es apropiado para esto o usa encuestas, esas son las dos opciones.
Aquí hay un nuevo video de hoy sobre esto:
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.