新发布的ASP.NET WebHooks和Signal-R有什么区别?它们各自的优缺点是什么?每种技术的使用案例是什么?
SignalR是通过WebSockets在ASP.NET应用程序内部进行通知的。您可以通过WebSockets交换事件通知,但这需要一个不断的网络连接。
WebHooks是用于跨其他Web应用程序和其他外部服务进行事件通知的。(考虑B2B通信)。例如,当有人向您的PayPal账户发送资金时,您可以接收到WebHook。 PayPal向您预定义的URL处理程序发送POST请求,然后您的应用程序会对该通知执行某些操作。您首先在PayPal侧预配置所有内容。您还设置应用程序来处理传入的POST请求。事件通知以(近乎)实时的方式“推送”给您。在等待事件时无需保持打开网络连接。
这两个可以互补使用。例如,当您从PayPal收到WebHook时,可以使用SignalR/WebSockets通知已登录的Web应用程序用户成功收到了资金。
简而言之:跨不同Web应用程序进行事件通知。
这真的取决于您要与哪个服务进行集成以及如何进行集成。WebHooks是一种在不同SaaS服务之间集成事件通知的简单模式。如果您要集成的服务支持WebHooks,则可以使用该服务。如果它支持SignalR,则可以使用SignalR。从这个意义上说,这两者是相当互补的。
请查看Henrik F Nielsen在http://blogs.msdn.com/b/webdev/archive/2015/09/04/introducing-microsoft-asp-net-webhooks-preview.aspx发布的文章。