2013-07-28 49 views
1

我试图在MVC3应用程序signalR 1.1.0。我重写OnConnected方法如下:SignalR连接回调没有触发

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回调“警报(1)”从不执行。浏览器上没有JS错误。我哪里错了?谢谢!

回答

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

+0

心想连接自动调用,是库的一部分。感谢您的支持。 – helloworld

+0

这是,如果你连接到集线器。当你没有客户端回调时,你并没有“连接” – davidfowl