2016-04-12 58 views
1

在我們的系統中,我們有一個或多個運行每個用戶的前端實例。它們託管在許多Citrix服務器上。使用Rebus進行推送通知

我們想在事情發生時通知用戶並確保消息到達每個前端。我們如何做到這一點?

雖然最初是使用發佈/訂閱,但是我們不需要每個前端的隊列嗎?

或者,您可以以某種方式傳遞消息,確保前端上的每個處理程序實例都獲取消息嗎?

回答

1

如果您想使用Rebus將消息實際發送到前端,那麼您絕對需要每個客戶端實例都需要一個輸入隊列。

但是,我通常建議不要使用Rebus直接與客戶進行溝通,因爲它對於更「穩定」的事情來說最爲方便。

事情是:客戶來去 - 這就是「客戶」的本質。諸如Rebus之類的消息傳遞庫(例如NServiceBus,MassTransit等)通常在端點數量不會波動太多時效果最好。

您仍然可以使用Rebus在服務器上進行協調,作爲以可靠方式實現異步事物的有用工具,但我建議您使用類似SignalR的內容來推送最後一英寸的通知服務器到客戶端。

SignalR正是您所需要的,實際上,它爲您提供了一個模型,讓您保持可以向其推送消息的任意客戶組。