我正在开发基于信号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 () {}
任何人都可以提出建议吗
答案 0 :(得分:1)
您需要按照以下步骤操作:
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>