2015-01-07 3 views
1

동일한 솔루션의 다른 프로젝트에서 한 프로젝트에서 signalR 허브 메서드를 실행하려고합니다. 두 프로젝트는 동일한 웹 프런트 엔드에서 실행됩니다.SignalR GetHubContext 메서드가 허브 메서드를 실행하지 않습니다.

다음 코드를 호출하면 IHubContext 개체를 사용하지 않아 예상치 못한 오류가 발생하는 지점까지 코드가 허브에서 실행됩니다.

presentation.ChatHub ch = new ChatHub(); 
ch.Send(message, "", ""); 

그런 일이 생겼을 때 코드를 다음과 같이 변경했지만 허브 안의 코드는 더 이상 실행되지 않습니다.

IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); 
context.Clients.All.Send(message, "", ""); 

허브 코드는 다음과 같이 호출되지된다

public class ChatHub : Hub 
{ 
    public int Send(string message, string fName, string IName) 
    { 
    //Code Goes here. 
    } 

모든 것이 여기에 다른 답변을 포함하여 읽어 clients.all 일을해야 호출 후 IhubContext을 얻기를 가리 키도록 것있다, 그러나 나는 더이 아이디어가 작동하지 않는 이유는 무엇입니까

EDIT : 실행하기 전에 데이터베이스에 게시물이 만들어 지도록 변경했습니다. 자바 스크립트 수신 측과 일치하는 'broadcastMessage'함수가 실행되도록 변경했습니다. . 그래도 여전히 제대로 연결되지 않고 자바 스크립트 기능이 작동하지 않습니다.

IHubContext context = GlobalHost.ConnectionManager.GetHubContext("chatHub"); 
    context.Clients.All.broadcastMessage(message, pid, userName, FirstName, count, "", "", nDate); 

답변

2

나는이 100 % 아니지만, 다음 페이지의 내 이해를 기반으로 : ASP.Net SignalR Hubs API 당신이 허브 외부에서 메서드를 호출 할 때 말하는, 당신은 메서드를 호출하지 않습니다 허브에 정의한 대신 연결된 모든 클라이언트에서 jquery를 활성화하도록 허브에 지시합니다.

이 때문에 허브 방법이 활성화되지 않습니다.

+0

좋아요, 필자는 내 코드를 변경하여 게시물을 만든 다음 허브 코드를 사용하여 내 자바 스크립트와 일치시킵니다. 두 사람은 아직도 연결되어 있지 않습니다. 지금 내 게시물을 업데이트하겠습니까? – LiamHT

+0

제가 제공 한 링크는 제가 똑같은 문제가 생겼을 때 저에게 도움이되었던 것입니다. 작동하려면 시간이 걸렸지 만 사이트에서 두 페이지를 사용하기 시작했습니다. 하나는 수동으로 표준 허브를 테스트하고 작동하는지 확인하는 데 사용 된 페이지입니다. 그렇다면 실제 메인 페이지는 컨트롤러 동작을 활용했습니다. jquery 메서드 이름이 동일하고 jquery가 대/소문자를 구분하므로 허브 메서드와 동작 메서드에서 동일한 메서드 이름인지 확인하십시오. – Pheonyx

+0

예, 나는 그것을 읽었으며 코드는 그것이 말하는 것과 일치하는 것처럼 보입니다. 조사를 계속할 것입니다, 당신의 도움에 감사합니다. – LiamHT

관련 문제