1

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

4

1 回答 1

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

于 2013-07-28T20:23:19.053 回答