2012-08-09 2 views
1

나는 다음과 같은 허브 클래스있다 :공공 작업 연결은()

public class Dashboard : Hub, IDisconnect, IConnected 
    { 
     //Initialize Repoisotries 
     private IProfileRepository profileRepository; 
     private ISiteDataRepository siteDataRepository; 
     private readonly IHubContext matchContext = GlobalHost.ConnectionManager.GetHubContext<MatchMaker>(); 

    //Constructor Injection for profile repository and site data repository 
    public Dashboard(IProfileRepository repo, ISiteDataRepository siteRepo) 
    {    
     profileRepository = repo; 
     siteDataRepository = siteRepo;    
    } 
    public Task Disconnect() 
    { 
     return null; 
    } 
    public Task Reconnect(IEnumerable<string> connections) 
    { 
     return null; 
    } 
    public Task Connect() 
    { 
     Debug.WriteLine(MatchMaker.onlineUsers.Count); 
     return null; 
    } 
    public void GetUserInfo() 
    { 
     Debug.WriteLine(MatchMaker.onlineUsers.Count); 
    } 
} 

} 나는 signalr이

은 다음과 같습니다

<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script> 

I 액세스 좋아해 :

$(function() { 
    //Create the proxy 
    var Dashboard = $.connection.dashboard; 
    $.connection.hub.start(function() { 
     Dashboard.getUserInfo(); 

    }); 
}); 

Dashboard.getUserInfo()을 호출하면 메서드가 find라는 메서드를 호출하지만 Connect() 메서드는 처음에는 실행되지 않습니다. didnt한다 당신이 연결을 활성화하기 위해 거기에 클라이언트 기능을 필요로 알고,

$(function() { 
//Create the proxy 
var Dashboard = $.connection.dashboard; 

Dashboard.someMethod = function(message){ 
} 

$.connection.hub.start(function() { 
    Dashboard.getUserInfo(); 

}); 
}); 

Connect() 기능이 발사 시작 :

답변

1

는 나는이 같은 방법을 추가 자마자 ... 무엇이 잘못된 것인지 알아 냈다.

+1

예 적어도 하나의 구독이 필요합니다. "최적화"되어있어 필요하지 않은 허브에 가입하지 않게됩니다. – davidfowl

+0

나는이 머리 위로 머리를 터뜨 렸습니다. 아마도 이것은 위키에 추가 될 수 있습니까? – Lodewijk