15

是否有推荐的方法在两个应用程序之间共享 SignalR 集线器?

实际情况是一个面向公众的 WebAPI 项目和一个内部的 MVC WebApp。我想做的是从 WebAPI 项目调用 SignalR 集线器上的方法,并将这些方法的结果推送到通过 MVC 应用程序连接的客户端。

最好的选择是创建第三个“Hub”项目并将两个项目都连接到该项目吗?如果是这样,如何管理中心实例?两个应用程序能否从不同的应用程序池(可能还有主机)中获取对同一个集线器的引用?

我读了一些关于GlobalHost.ConnectionManager.GetHubContext,这足以获得两个应用程序都可以使用的有效单例集线器吗?

任何想法都非常感谢。

4

1 回答 1

4

只需通过 SQL Server 表设置信号器消息路由。它将使用相同的路由设置自动连接所有集线器。没有别的事可做,这很神奇。

GlobalHost.DependencyResolver.UseSqlServer(ConfigurationManager.ConnectionStrings["signalr"].ConnectionString);

您将需要以下 nuget 包:Microsoft.AspNet.SignalR.SqlServer

于 2013-09-10T18:35:42.177 回答