我在VS2017中创建了一个ASP.NET Web应用程序(.Net Framework),我选择了一个Empty项目并选中了Web API复选框。我不要MVC。我从Nuget Microsoft.AspNet.SignalR安装。一切都很好。然后我
添加一个OWIN Startup类,并添加以下行:app.MapSignalR();在配置方法中。
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(WebApplication4.Startup))]
namespace WebApplication4
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
我用一个Activate方法创建了一个名为MyTestHub的集线器。
using Microsoft.AspNet.SignalR;
namespace WebApplication4
{
public class MyTestHub : Hub
{
public string Activate()
{
return "Monitor Activated";
}
}
}
我创建一个html页面进行以下测试:
<script src="Scripts/jquery-1.6.4.min.js"></script>
<script src="Scripts/jquery.signalR-2.2.2.js"></script>
<script src="signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var notificationHub = $.connection.myTestHub;
$.connection.hub.start(function () {
notificationHub.activate(function (response) {
console.log("response", response);
});
});
});
</script>
创建集线器,$。connection.hub.start很好,但是notificationHub.activate返回“对象不支持属性或方法'activate'”。我在notificationHub上找不到该功能,但在notificationHub.server上却找到了该功能。但是,调用notificationHub.server.activate不会执行任何操作。
我已经尝试了SingnalR和2.2.2的最新稳定版本(作为示例项目),但是没有任何效果。 signalr / hibs还可以。
有什么想法吗?我所看到的所有示例基本上都可以做到这一点,但是我无法使其正常工作。
答案 0 :(得分:0)
找到答案
notificationHub.server.activate().done(function (response) {
console.log("response", response);
});