我有一个.NET Web应用程序,它被部署为多实例Azure Web App。该Web应用程序利用SignalR向连接的客户端广播消息。我正在使用服务总线背板进行扩展,这非常有用。
我还有一个连续的WebJob监视服务总线队列,进行一些密集处理,并且作为该处理的一部分需要向SignalR客户端发送广播消息。
似乎有两种方法可以解决这个问题:
通过使用HubConnection和IHubProxy连接在Web App上运行的SignalR Hub,将WebJob视为SignalR客户端。这似乎运作良好,是我目前正在做的事情。
以某种方式将WebJob视为另一个Hub,并将其添加到Service Bus背板。我不知道我是怎么做到的。然后,我将使用从SignalR.GlobalHost.ConnectionManager获得的IHubContext来广播消息。
我的问题是:
这样做的方法是否比另一种更好?
如果选项#2更好,有人可以发布一个指向我如何做这个的链接吗?似乎大多数教程都是关于使用SQL Server,Service Bus Topics或Redis作为背板的多实例横向扩展。