我在MVC3应用程序中尝试signalR 1.1.0。我已经覆盖了OnConnected方法,如下所示:
public class MyHub : Microsoft.AspNet.SignalR.Hub
{
public static List<string> Connections = new List<string>();
public override System.Threading.Tasks.Task OnConnected()
{
Connections.Add(this.Context.ConnectionId);
return base.OnConnected();
}
}
在Js,我跟着:
$(function () {
$.connection.hub.start();
$.connection.myHub.client.connected = function() {
alert(1);
};
});
当我加载页面时,服务器上的OnConnected确实在调试模式下被点击,但JS回调“alert(1)”从未执行。浏览器上没有JS错误。我哪里错了?谢谢!
答案 0 :(得分:7)
您需要在调用start之前订阅集线器:
$(function () {
$.connection.myHub.client.something = function() {
};
$.connection.hub.start().done(function() {
alert('I'm connected!');
});
}
查看javascript API的文档: http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-javascript-client