2014-07-23 4 views
4

나는 signalR을 실습하고있는 .NET 콘솔 어플리케이션을 가지고 있습니다.SignalR .NET 클라이언트가 메시지를 수신하지 않습니다.

var hubConnection = new HubConnection("http://URL/signalr/"); 

var hub = hubConnection.CreateHubProxy("Hub"); 

hub.StateChanged += change => 
{ 
    Console.WriteLine(change.NewState); 
}; 
hub.Received += s => 
{ 
    Console.WriteLine(s); 
}; 

hub.On<string, string>("processMessage", (group, message) => 
{ 
    Console.WriteLine(message); 
}); 

await hubConnection.Start(); 

await hub.Invoke<string>("Subscribe", "New group"); 

상태가 연결됨에서 연결됨으로 변경되지만 서버에서 메시지를 보내면 클라이언트에서 "수신 됨"이벤트가 표시되지 않습니다. 클라이언트가 구독하자마자 서버가 그룹 메시지를 보내고 올바른 "새 그룹"그룹 이름으로 전송 된 메시지를 볼 수 있지만 클라이언트에서는 메시지를받지 못합니다. 또한 서버가 그 메소드를 사용할 때 processMessage 이벤트를받지 못합니다.

서버 코드

private void CallBack(string group, string message) 
{ 
    Clients.Group(group).processMessage(group, message); 
} 

서버에서 다른 방법은 그냥 클라이언트에 보낼 수있는 데이터가있을 때 콜백 메소드를 사용하여 내 내부 서버를 설정하는 구독입니다.

편집 이것은 자바 스크립트에서만 작동하지만 .NET 클라이언트에서는 작동하지 않습니다. 전체 서버 측 코드없이

+0

도 서버 코드를 추가하십시오. –

+2

가까운 투표와 downvote가 필요한 이유는 무엇입니까? 이것은 합법적 인 질문입니다. –

+0

서버 코드가 추가되었습니다. – Chrisgozd

답변

2

그것은 말할 어렵다하지만이 부분은 서버 측에 당신의 hubclass의 이름이 필요 인수로

hubConnection.CreateHubProxy("Hub"); 

잘못된 생각합니다. 이 임시 VS

당신이 더 당신의 출력 섹션의 정보를 debuging 얻을 것이다이를 추가 한 후 당신의 HubConnection

hubConnection.TraceLevel = TraceLevels.All; 
hubConnection.TraceWriter = Console.Out; 

에 다음을 추가 할 수 있습니다 실패하는 이유를 예를 들어

hubConnection.CreateHubProxy("MyHub"); 

는 클라이언트 측에 대한 자세한 정보를 얻으려면

관련 문제