【发布时间】:2013-08-08 12:31:03
【问题描述】:
我有一个 MVC 网站,上面有一些相当庞大的业务对象。我的 MVC 控制器调用管理器对象,这些对象将工作委托给其他对象集。
基本上代码在服务器端,而 Hub 在某种程度上就像一个控制器,因为它非常接近客户端。
有没有办法根据传递给这些 Manager 对象的 Hub 引用来执行 SignalR 方法?
【问题讨论】:
标签: signalr signalr-hub signalr.client
我有一个 MVC 网站,上面有一些相当庞大的业务对象。我的 MVC 控制器调用管理器对象,这些对象将工作委托给其他对象集。
基本上代码在服务器端,而 Hub 在某种程度上就像一个控制器,因为它非常接近客户端。
有没有办法根据传递给这些 Manager 对象的 Hub 引用来执行 SignalR 方法?
【问题讨论】:
标签: signalr signalr-hub signalr.client
如果你的 MVC 和 SignalR 服务在同一个进程上运行,你可以调用 GlobalHost.ConnectionManager.GetHubContext("MyHub");
如果它们位于不同的进程中,那么您需要在 MVC 应用程序中创建 SignalR 客户端
【讨论】:
所有的客户端都将连接到您的网络应用程序并在那里保持连接。从单独的后端程序中,您只需调用 Web 应用程序中的 Web 服务,该 Web 服务可以将消息发布到 Web 项目中的同一 SignalR 集线器上。您的后端应用无法直接连接到 SignalR 集线器。这一切都流经一个点,即您的网络应用程序。
如果您只是在谈论同一个 Web 应用程序中的共享类库,您应该能够将集线器对象传递给另一个类,因为其他人回答:GlobalHost.ConnectionManager.GetHubContext("MyHub");
【讨论】: