我有一個Azure託管的Web應用程序,它與一些輔助角色的實例一起工作。目前,Web應用程序通過將消息放置在Azure隊列中供工作人員接受,從而將工作傳遞給這些工作人員。工作人員通過將消息放置到「反饋」隊列中來傳遞狀態和進度消息。目前,爲了讓瀏覽器客戶端知道進展情況,我在瀏覽器中將基於Ajax的定期輪詢調用到MVC控制器方法,該方法讀取Azure的「反饋」隊列,並將這些消息作爲json返回給瀏覽器。很顯然,SignalR看起來像是這種笨拙的輪詢/排隊方法的一個非常有吸引力的替代方案,但是當我們談論多個工作者角色(而不是web角色)時,我幾乎找不到指導如何去做)需要向個人或所有客戶發送狀態。在Azure Worker角色中使用SignalR
SignalR.WindowsAzureServiceBus by Clemens vasters看起來非常棒,但在最後會留下一點高和幹,即缺乏一個很好的示例解決方案。
添加評論:從我讀到目前爲止似乎從工人角色沒有直接通信通過SignalR方法(而不是網絡角色)瀏覽器客戶端是可能的。似乎工作人員必須使用隊列與Web角色進行通信。這反過來又強制實施輪詢方法,即必須輪詢隊列中的工作角色的消息 - 該輪詢必須從它出現的瀏覽器發起(驅動)(如何在Web角色中設置輪詢循環?)
總之,SignalR,即使有 Clemens Vasters的SignalR.WindowsAzureServiceBus擴展方法,也無法處理從工作角色到瀏覽器的直接通信。
任何意見的專家將不勝感激。
什麼是最輕量級的方式,你能夠中繼工人角色=> webrole =>客戶端瀏覽器? – DeepSpace101 2013-01-17 00:37:30
由於bacr已經回答。我也有多個工作角色作爲客戶端運行,並且webrole控制它們。 – 2013-04-13 22:13:20