【问题标题】:Signalr broadcast from web api从 web api 广播的 Signalr
【发布时间】:2015-03-25 13:16:43
【问题描述】:

当您在 mvc 应用程序中安装 signalr 包时,将 SignalR 从位于另一个项目中的 webapi 广播到 mvc 应用程序的最佳做法是什么?

  • MVC - 本地主机:8080

  • API - localhost:8080/api(位于不同的项目中)

  • Hubs - Hubs 的共享类库

问题是,如果我在 MVC 应用程序中安装 signalr 包,它不起作用,但如果我在 API 应用程序中安装它,它就会起作用。

有什么想法吗?

【问题讨论】:

    标签: signalr


    【解决方案1】:

    您不需要共享集线器,集线器是必要的(如果您使用集线器 API)只有广播公司。您可以从 MVC 项目中删除它们的使用。

    此外,您不需要两者都包含完整的 SignalR 包。 WebAPI 几乎不会有自己的 JS 客户端(它们来自 MVC 客户端),因此只需安装 SignalR .NET 客户端库就足够了。与 MVC 项目的推理相同,从 SignalR 的角度来看,它只是一个客户端,因此您只需要安装 SignalR JS 包。我假设您正在从 WebAPI 项目直接向浏览器中的 MVC 用户广播,但是如果您尝试实现服务器到服务器的广播,那么您也需要 .NET 客户端库,但仍然不需要共享中心。

    【讨论】:

    • Hub 类在一个共享项目中,因为我可以从不同的项目中调用使用 GlobalHost 类的连接。 var signalRConnectionId = HttpContext.Current.Request.QueryString["hub"]; GlobalHost.ConnectionManager.GetHubContext() .Clients .Client(signalRConnectionId) .sendMessage('test');
    • 没关系,根据您的问题,我不确定您是否知道您所描述的问题不需要它们。
    猜你喜欢
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    相关资源
    最近更新 更多