具有不同背板(azure和SQL)的多个SignalR集线器

本文关键字:SQL 集线器 SignalR azure | 更新日期: 2023-09-27 18:20:30

我需要在我的应用程序中定义几个SignalR集线器,其中大多数将使用SQL Server背板,但其中一个将使用Azure服务总线。

在同一个应用程序中有可能有两个不同的背板吗?

如何为特定集线器指定不同的配置?

到目前为止,我看到的所有示例都使用GlobalHost.DependencyResolver.UseServiceBus来配置背板,但这将对所有集线器使用相同的背板,而不仅仅是一个。

具有不同背板(azure和SQL)的多个SignalR集线器

SignalR使用IMessageBus的实现来将消息从客户端传递到客户端:一个用户向另一个用户发送消息;这个消息将到达服务器,它将通过MessageBus,然后它将实际通过套接字并在线发送给其他用户。

通过使用背板,您可以告诉SignalR使用MessageBus的不同实现,该实现将通过该背板发送所有消息(SQL、Azure服务总线、Redis)。

因此,在我看来,如果您将服务器配置为使用背板,则通过所有集线器的所有消息都将通过该MessageBus到达所有服务器。

所以我不确定你是否能够通过消息来源的集线器来过滤消息,以便将它们发送到不同的背板。

我看不出你怎么能为同一台服务器拥有多个背板。

如果您确实需要多个背板,可以考虑使用两个不同配置的SignalR服务器。

希望这有帮助:)

祝你好运!