自定义Webhook接收器侦听Azure Web Job通知

时间:2019-02-18 06:27:45

标签: c# asp.net-mvc azure azure-webjobs asp.net-webhooks

是否有可能创建一个Webhook接收器,以便每当在数据库中插入某些记录(由Web Job监视)时就侦听Azure Web Job通知? Web挂钩收到通知后,UI需要向用户显示通知。

1 个答案:

答案 0 :(得分:0)

由于Sumit Saini尚未发布他们的代码,所以我将添加使用.Net Core为conference presentation编写的代码。原始代码从事件网格接收了事件,但是可以轻松修改以使用简单的webhook。

控制器定义一个接收事件的端点,并将其传递给SignalR:

[ApiController]
[Produces("application/json")]
public class EventHandlerController : Controller
{
    private readonly IHubContext<NotificationHub> _hubContext;

    public EventGridEventHandlerController(IHubContext<NotificationHub> hubContext)
    {
        _hubContext = hubContext;
    }

    [HttpPost]
    [Route("api/EventHandler")]
    public IActionResult Post([FromBody]object request)
    {

        object[] args = { request };

        _hubContext.Clients.All.SendCoreAsync("SendMessage", args);

        Console.WriteLine(truck);

        return Ok();
    }
}

集线器类中没有任何特殊代码-您只需将其定义为普通代码即可

public class NotificationHub : Hub
{
    public async Task SendMessage(Message message)
    {
        await Clients.All.SendAsync("Notification", message);
    }
}

客户端也是SignalR的标准实现。

您可以在此处找到更通用的SignalR教程:https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-2.2&tabs=visual-studio

您也可以使用SignalR as a serviceNotification Hub来获得此结果。