SignalR连接回调未触发

时间:2013-07-28 18:15:07

标签: signalr

我在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错误。我哪里错了?谢谢!

1 个答案:

答案 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