Signalr 2.1.1 OnConnected即使使用客户端回调也不会触发

时间:2014-09-23 07:58:39

标签: c# asp.net-mvc signalr

中心代码:

    private readonly IHubContext<IMyHubClient> _context;

    public MyHub(IHubContext<IMyHubClient> context)
    {
      _context = context;
    }

    public override Task OnConnected()
    {
        string userName = Context.User.Identity.Name;
        string connectionId = Context.ConnectionId;

        //some code to store connected user info

        return base.OnConnected();
    }

客户代码:

        $.connection.myHub.client.connected = function() { alert('1'); };
        $.connection.myHub.client.disconnected = function() { alert('2'); };
        $.connection.hub.start()
                  .done(function(){ console.log('Now connected, connection ID=' + $.connection.hub.id); })
                  .fail(function(){ console.log('Could not Connect!'); });

客户端成功连接到hub并且js回调正在运行。但服务器端的OnConnected方法永远不会触发。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

MyHub是否构建完毕?我怀疑SignalR是否能够提供IHubContext<IMyHubClient>参数。如果添加无参数构造函数或删除现有构造函数,则代码应该可以正常工作。