Question

Je souhaite implémenter un système de notification Facebook comme ASP.NET MVC 3: les notifications sont envoyées à un utilisateur spécifique pour le notifier pour une action sur l'un de ses éléments.

SignalR est-il adapté à une telle exigence? Comment pourrais-je envoyer une notification à un utilisateur spécifique (toutes les sessions ouvertes de cet utilisateur) en utilisant SignalR?

Éditer

Ok, ici ce que j'ai fait

Du côté 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);
});

});

Du côté du serveur

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

Et chaque fois que je dois informer un utilisateur dans le contrôleur, je fais ce qui suit:

IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>();
dynamic clients = connectionManager.GetClients<Chat>();
clients[username].addMessage("test");
Était-ce utile?

La solution

Il convient à cela ou vous utilisez des sondages, ce sont les deux choix.

Voici une toute nouvelle vidéo à partir d'aujourd'hui à ce sujet:

http://channel9.msdn.com/shows/web+camps+tv/damian-edwards-and-david-fowler-demonstrate-signalr?utm_source=dlvr.it&utm_medium=twitter

Autres conseils

Oui, SignalR est un bon choix pour cela. Jetez un œil à la documentation concernant les hubs (serveur et Client JS).

Vous devez implémenter la logique du serveur pour associer la session de votre client à la session de Signalr. Vous pouvez utiliser des groupes pour informer toutes les sessions ouvertes de chaque utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top