Come comunicare a SignalR Notifications Hub che c'è una nuova notifica senza il polling SignalR su quella tabella

3

Sto sviluppando un sistema di notifiche push per la mia app ASP.NET MVC.

L'idea è di utilizzare Redis per l'accodamento, ServiceStack per l'elaborazione della coda e SignalR per le notifiche push per implementare un sistema in grado di distribuire diversi tipi di notifiche.

Ho creato un prototipo rapido in cui ho un servizio ServiceStack che ascolta sulla coda Redis. Quando riceve un messaggio, esamina la proprietà ReplyTo sul messaggio, che contiene l'URL dell'operatore (abbonato) che può elaborare il messaggio. Quindi formula una risposta per quel lavoratore e la rilascia nella coda Redis. Qui, essenzialmente, ServiceStack utilizza la funzione PUBSUB di Redis per notificare al lavoratore che ha un nuovo elemento da elaborare. L'operatore inizia quindi l'elaborazione del messaggio. Un esempio, se si tratta di un messaggio di richiesta di connessione, cercherà di estrarre tutti i dati richiesti dal DB SQL in base agli identificatori nel messaggio. Infine, salva il messaggio in una tabella "Notifiche". Immagino che ci siano moltissimi di questi lavoratori, che elaborano diversi tipi di notifiche che escono da ogni tipo di lavoro in background.

Ecco il problema. Non ho idea di come dire a SignalR Notifications Hub che c'è una nuova notifica senza il polling SignalR su quella tabella. Potrei usare le dipendenze SQL qui, ma sembra brutto. In fin dei conti sarebbe bello colpire quell'Hub con una richiesta HTTP dal mio lavoratore, ma non so se è possibile.

Cosa vorresti suggerire?

    
posta Sergei 21.05.2014 - 08:33
fonte

0 risposte

Leggi altre domande sui tag