我有一个 Azure 托管的 Web 应用程序,它与许多辅助角色实例一起工作。目前,Web 应用程序通过将消息放入 Azure 队列以供工作人员获取,从而将工作传递给这些工作人员。工作人员通过将消息放入“反馈”队列来传递状态和进度消息。目前,为了通知我的浏览器客户端进度,我在浏览器中对 MVC 控制器方法进行基于 ajax 的定期轮询调用,该方法依次读取 Azure“反馈”队列并将这些消息作为 json 返回给浏览器.
显然,对于这种笨拙的轮询/排队方法,SignalR 看起来是一个非常有吸引力的替代方案,但是当我们谈论需要发送的多个工作角色(而不是 Web 角色)时,我发现如何去做这件事的指导很少个人或所有客户的状态。
Clemens vasters 的 SignalR.WindowsAzureServiceBus看起来很棒,但最后留下了一个有点高和干燥,即缺乏一个很好的示例解决方案。
添加评论:从我目前的阅读来看,似乎无法通过 SignalR 方法从工作角色(与Web角色相反)直接通信到浏览器客户端。似乎工作人员必须使用队列与 Web 角色进行通信。这反过来又强制采用轮询方法,即必须轮询队列以获取来自工作角色的消息 - 此轮询必须源自(驱动)来自它出现的浏览器(如何在 Web 角色中设置轮询循环?)
总之,即使使用Clemens Vasters 的 SignalR.WindowsAzureServiceBus 横向扩展方法,SignalR 也无法处理从工作角色到浏览器的直接通信。
专家的任何意见将不胜感激。