使用 Rebus 推送通知

Using Rebus for push notifications

在我们的系统中,每个用户有一个或多个前端实例 运行。它们托管在许多 Citrix 服务器上。

我们希望在发生某些事情时通知用户并确保消息到达每个前端。我们如何做到这一点?

虽然最初是使用 publish/subscribe,但我们不需要每个前端一个队列吗?

或者,您能否以某种方式传递消息,确保前端的每个处理程序实例都收到消息?

如果您想使用 Rebus 将消息实际发送到前端,您绝对正确,每个客户端实例都需要一个输入队列。

不过,我通常不建议使用 Rebus 直接与客户沟通,因为它最方便处理更 "stable".

的事情

问题是:客户来来去去 - 这就是 "client" 的本质。 Rebus 等消息传递库(例如 NServiceBus、MassTransit 等)通常在端点数量波动不大时效果最佳。

你仍然可以使用 Rebus 在服务器上进行协调,作为以可靠方式实现异步事物的有用工具,但我建议你使用类似 SignalR 的东西来推送最后一英寸的通知从服务器到客户端的出路。

实际上,SignalR 正是您所需要的,因为它为您提供了一个模型,可以让您保留可以向其推送消息的任意客户端组。