Lo scenario è il seguente: Abbiamo un'app Asp.Net MVC 4 con un sistema di messaggistica privato che ospita un hub signalR utilizzato per informare gli utenti quando nuovo messaggio sono disponibili per loro. Tutto funziona, la connessione al registro delle app Web insieme al loro nome utente e il segnale viene inviato all'hub dal DataLayer tramite una classe notificationAdapter.Invia notifica al client Web dal servizio esterno tramite l'hub SignalR ospitato in Asp.Net MVC Application
Il problema si presentava quando dovevamo creare un servizio separato sfruttando Quartz.Net che inviava anche messaggi privati al termine delle attività. Vogliamo che il servizio Quartz sia in grado di contattare l'Hub ma non possiamo causarlo in un processo separato. Non voglio usare il client signalR .net perché non ho bisogno di una connessione permanente tra il servizio basato su Quartz e la mia app Web. Penso di creare un endpoint nel mio sito Web per esporre il metodo server di Hub al servizio o utilizzare ScaleOut per questo, ma sento che mi manca qualcosa e anche se chiederei alla community.
Non so perché non vorreste una connessione permanente ?? L'intero punto del client SignalR è per la comunicazione fuori processo tra un hub. Si potrebbe fare quello che lei ha suggerito, ma questo tipo di sconfitte lo scopo di SignalR e si sarebbe perdere su qualsiasi tipo di comunicazione bi-direzionale ... – Steve
@Steve: Credo che non lo voglio perché non lo faccio bisogno che sia permanente o bidirezionale. – VdesmedT
Hai considerato l'utilizzo di un bus (RabbitMQ, NServiceBus, ecc.)? Quartz.Net può pubblicare un messaggio sul Bus e un sottoscrittore riceve il messaggio e invia un avviso a tutti i client connessi (app Web) tramite SignalR. – codingintherain