在我们的系统中,我们有一个或多个每个用户运行的前端实例。它们托管在许多Citrix服务器上。
我们希望在发生某些事情时通知用户,并确保邮件到达每个前端。我们如何做到这一点?
最初的虽然是使用发布/订阅,但是我们不需要每个前端有一个队列吗?
或者,您可以以某种方式传递消息,确保前端的每个处理程序实例都获得消息吗?
答案 0 :(得分:1)
如果您想使用Rebus将消息实际发送到前端,那么每个客户端实例需要一个输入队列是完全正确的。
我通常建议不要使用Rebus直接与客户沟通,因为这对于更“稳定”的事情来说非常方便。
事情是:客户来去 - 这就是“客户”的本质。像Rebus这样的消息传递库(例如NServiceBus,MassTransit等)通常在端点数量不会波动太多时效果最好。
您仍然可以使用Rebus在服务器上进行协调,作为以可靠方式实现异步事物的有用工具,但我建议您使用类似SignalR之类的内容来推送持续不断的通知从服务器到客户端。
事实上,SignalR正是你所需要的,它为你提供了一个模型,让你可以保留任意一组你可以推送信息的客户端。