2015-09-16 12 views

risposta

43

SignalR è per la notifica entro un'applicazione ASP.NET utilizzando WebSockets. È possibile scambiare notifiche di eventi tramite WebSockets, tuttavia richiede una connessione di rete costante.

WebHooks sono per la notifica di eventi su altre applicazioni Web e altri servizi esterni. (Pensa alle comunicazioni B2B). Ad esempio, puoi ricevere un WebHook quando qualcuno ti invia denaro sul tuo conto PayPal. PayPal avvia una richiesta POST al gestore di URL predefinito e quindi l'app fa qualcosa con quella notifica. Per prima cosa devi preconfigurare tutto sul lato PayPal. Si imposta anche un'applicazione per gestire la richiesta POST in entrata. La notifica dell'evento viene "spinta" in (quasi) in tempo reale. Non è necessario tenere aperta una connessione di rete durante l'attesa degli eventi.

I due possono essere complementari. Ad esempio, quando ricevi il WebHook da PayPal, puoi avvisare un utente che ha effettuato l'accesso sulla tua webapp (utilizzando SignalR/WebSockets) che il denaro è stato ricevuto con successo.

TLDR: notifica eventi su diverse applicazioni Web

+0

cosa è più adatto per le applicazioni mobili? per esempio se ho un'app mobile con database sqlite e cloud locale. se cambio qualcosa voglio il mio sqlite locale da aggiornare. – batmaci

1

Dipende molto dal servizio che si desidera integrare e come. WebHooks è un modello semplice per integrare le notifiche degli eventi tra diversi servizi SaaS. Se il servizio che desideri integrare con supporta WebHooks, puoi utilizzarlo. Se supporta SignalR, puoi usarlo. In questo senso i due sono piuttosto complementari.

check Henrik F Nielsen postale a http://blogs.msdn.com/b/webdev/archive/2015/09/04/introducing-microsoft-asp-net-webhooks-preview.aspx

+0

Ma se dovessi scegliere qualcosa oggi per fare la notifica dell'evento. Quale sceglieresti e perché? –

+4

Dipende se vuoi aggiornamenti in tempo reale costantemente connessi (dove useresti SignalR) o iscriviti agli eventi che potrebbero accadere nei futuri aggiornamenti (dove useresti WebHooks). –