【发布时间】:2013-09-11 02:35:42
【问题描述】:
是否有在两个应用程序之间共享 SignalR 集线器的推荐方法?
实际情况是一个面向公众的WebAPI项目和一个内部的MVC WebApp。我想做的是从 WebAPI 项目调用 SignalR 集线器上的方法,并将这些方法的结果推送到通过 MVC 应用程序连接的客户端。
最好的选择是创建第三个“Hub”项目并让两个项目都连接到该项目吗?如果是这样,如何管理中心实例?两个应用程序能否从不同的应用程序池(也可能是主机)获取对同一个中心的引用?
我阅读了一些关于 GlobalHost.ConnectionManager.GetHubContext 的信息,这是否足以获得两个应用程序都可以使用的有效单例集线器?
任何想法都非常感谢。
【问题讨论】:
-
signalR 在不同的域中支持 CORS,因此您可以使用 1 个应用程序同时为两个应用程序提供服务。 +1 好问题。
-
这是否意味着最好将 Hub 提取到一个单独的应用程序中并让其他两个应用程序调用它?这是我的怀疑,因为我想不出一种很好的方法来将它放在任何一个现有项目中并让它们相互调用。
-
有趣的东西,我们的目标是将 WebAPI 和 MVC 应用程序部署到 Azure,但采用 VPN/VM 的形式,两个站点都运行在同一个 VM 上。我不能 100% 确定这是否算作单个服务器(希望可以),因此我们可以避免使用背板方法,但仍需要跨应用共享集线器。
-
好吧,我可以告诉你,在接下来的几个小时/明天你会从 sR 团队成员那里得到更合适的答案,他们比我有更多的知识 :-) 我会继续跟踪这个问题因为我想听听该问题的最佳做法。
标签: asp.net-web-api signalr signalr-hub