【问题标题】:Call SignalR Hub from Backend Business Layer从后端业务层调用 SignalR Hub
【发布时间】:2013-08-08 12:31:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: signalr signalr-hub signalr.client


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-02
      • 2018-04-04
      • 2019-10-21
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      相关资源
      最近更新 更多