Domanda

Voglio implementare un sistema di notifica simile a Facebook in ASP.NET MVC 3: le notifiche vengono inviate a un utente specifico per notificarlo per un'azione su uno dei suoi articoli.

è il segnaler adatto per tali requisiti? Come potrei inviare una notifica a un utente specifico (tutte le sessioni aperte di questo utente) usando il segnaler?

Modifica

OK, qui cosa ho fatto

nel lato client

$(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);
});

});
.

nel lato server

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

E ogni volta che ho bisogno di notificare un utente nel controller che faccio quanto segue:

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

È stato utile?

Soluzione

È appropriato per questo o si utilizzano il polling, quelle sono le due scelte.

Ecco un video nuovo di zecca da oggi su questo:

http://channel9.msdn.com/Shows/Web+Camps+tv/Damian-edwards-D-David-Fowler-demstrate-signalR?utm_source=dlvr.it&amt;utm_medium=Twitter .

Altri suggerimenti

Sì, il segnaler è una buona scelta per questo.Dai un'occhiata alla documentazione relativa agli hub ( server e client JS ).

È necessario implementare la logica del server per associare la sessione del tuo client con la sessione del segnalatore.È possibile utilizzare i gruppi per notificare tutte le sessioni aperte di ciascun utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top