Ответ 1
SignalR предназначен для уведомления в приложении ASP.NET с помощью WebSockets. Вы можете обмениваться уведомлениями о событиях через WebSockets, однако для этого требуется постоянное сетевое подключение.
WebHooks предназначены для уведомления о событиях в других веб-приложениях и других внешних службах. (Думайте об обмене B2B). Например, вы можете получить WebHook, когда кто-то отправит вам деньги на вашу учетную запись PayPal. PayPal запускает запрос POST вашему предопределенному обработчику URL-адресов, а затем ваше приложение делает что-то с этим уведомлением. Сначала вы предварительно настроили все на стороне PayPal. Вы также настроили приложение для обработки входящего запроса POST. Уведомление о событии "толкается" вам в (ближнем) режиме в реальном времени. Не нужно открывать сетевое соединение во время ожидания событий.
Эти два могут быть взаимодополняющими. Например, когда вы получаете WebHook от PayPal, вы можете уведомить зарегистрированного пользователя на своем веб-сайте (используя SignalR/WebSockets), что деньги были получены успешно.
TL;DR: уведомление о событиях в разных веб-приложениях