SIgnal R hub类未定义。错误加载集线器

时间:2016-01-28 06:46:37

标签: signalr

我正在开发基于信号R的实时应用程序。我在VS 2010中使用.NET framework 4,Signal R版本1.2.2。我收到一个Hub引用错误说明

Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.

我得到了一个在全局文件中添加Hub引用的解决方案。但由于我使用DNN框架,它包含多个项目并具有共同的全局文件。

RouteTable.Routes.MapHubs("/myhubs", new HubConfiguration());

我尝试在那里添加这段代码,但它也没有用..

我的集线课

public class ChatHub : Hub
{

    public void Send(string message)
    {
        Clients.Others.receive(message);
    }

}

启动课程是

[assembly: OwinStartup(typeof(DotNetNuke.Modules.VideoChat.Startup))]

namespace DotNetNuke.Modules.VideoChat
{
public class Startup 
  {
    public void Configuration(IAppBuilder app)
    {
      app.MapHubs();
    }
  }
}

我在客户端使用jquery。

var chat = $.connection.chatHub;
$.connection.hub.start().done(function () {}

任何人都可以提出建议吗

1 个答案:

答案 0 :(得分:1)

您需要按照以下步骤操作:

  1. 在服务器上创建一个Hub类,该类继承SignalR的Hub
  2. 为Hub类创建客户端代理(使用.NET类或javascript代码)
  3. 使用MapHubs()(已废弃)
  4. 在服务器上启动Hub

    您的问题没有提供信息。它是一个Web应用程序吗?您是在客户端使用javascript还是.NET?

    请参阅此帖子:here

    修改

    现在我知道您正在使用OWIN,这是您在Startup类中应该拥有的内容:

    [assembly: OwinStartup("StartupConfiguration", typeof(DotNetNuke.Modules.VideoChat.Startup))]
    namespace DotNetNuke.Modules.VideoChat
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                // SignalR Hub Startup
                var hubConfiguration = new HubConfiguration();
                hubConfiguration.EnableDetailedErrors = true;
                hubConfiguration.EnableJavaScriptProxies = true;
                hubConfiguration.EnableJSONP = false;
    
                app.MapSignalR(hubConfiguration);
    
    
            }
        }
    }
    

    在您的web.config中,添加以下行:

    <appSettings>
        <add key="owin:appStartup" value="StartupConfiguration" />
        <add key="owin:AutomaticAppStartup " value="true" />
      </appSettings>