5

我有一个 MVC 网站,上面有一些相当庞大的业务对象。我的 MVC 控制器调用管理器对象,这些对象将工作委托给其他对象集。

基本上代码在服务器端,而集线器在某种程度上就像一个控制器,因为它非常接近客户端。

有没有办法根据传递给这些 Manager 对象的 Hub 引用来执行 SignalR 方法?

4

2 回答 2

3

如果你的 MVC 和 SignalR 服务在同一个进程上运行,你可以调用 GlobalHost.ConnectionManager.GetHubContext("MyHub");

如果它们在不同的进程上,那么您需要在您的 MVC 应用程序中创建一个 SignalR 客户端

于 2013-08-08T18:32:58.623 回答
1

好吧,所有客户端都将连接到您的 Web 应用程序并在那里保持连接。从单独的后端程序中,您只需调用 Web 应用程序中的 Web 服务,该 Web 服务可以将消息发布到 Web 项目中的同一 SignalR 集线器上。您的后端应用无法直接连接到 SignalR 集线器。这一切都流经一个点,即您的网络应用程序。

如果您只是在谈论同一个 Web 应用程序中的共享类库,您应该能够将集线器对象传递给另一个类,因为其他人回答: GlobalHost.ConnectionManager.GetHubContext("MyHub");

于 2013-08-10T13:14:59.273 回答