【问题标题】:calling SignalR hub from WebAPI controller从 WebAPI 控制器调用 SignalR 集线器
【发布时间】:2014-01-10 14:24:09
【问题描述】:

我正在使用 MVC 5、Signal R 2.0.1 和 WebAPI 2,并设置了一个名为 ExportHub 的简单集线器

public class ExportHub : Hub
{
    public void Send(string name, string message)
    {
        // Call the addNewMessageToPage method to update clients.
        Clients.All.addNewMessageToPage(name, message);
    }
}

我正在尝试从 WebAPI 调用它,以便更新 UI。

var hubContext = GlobalHost.ConnectionManager.GetHubContext<ExportHub>();

但在 hubContext 中,我没有看到对 Send 或 addNewMessageToPage 的任何引用。如何访问集线器内的方法?

【问题讨论】:

    标签: asp.net-web-api signalr asp.net-mvc-5


    【解决方案1】:

    您将无法调用指定中心的任何方法。 GetHubContext 只返回一个指定 T Hub 的 IHubContext。而不是调用 Hub 方法,你应该直接从你的 web api 方法调用方法到客户端,比如

    Clients.All.addNewMessageToPage(name, message);
    

    【讨论】:

      【解决方案2】:

      尝试将您的Send 方法设为静态,然后调用hubContext.Send(string, string)

      【讨论】:

      • 如果您将其设为静态,那么您肯定无法访问Clients
      猜你喜欢
      • 2018-12-18
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多