2016-10-11 4 views
1

SignalR 허브 프록시 생성기의 출력은 기본적으로 동적으로 생성 된 허브 프록시 파일과 동일합니까? 그렇지 않다면 차이점은 무엇입니까?SignalR : 생성 된 프록시 대 동적으로 생성 된 허브 파일

내 질문에 대한 배경 : 실행 중에 종속성 문제로 인해 명령 줄 도구를 사용하여 허브 프록시를 만드는 데 어려움을 겪고 있으며 동적으로 생성 된 파일을 얻는 것이 더 쉬운 방법이라고 생각합니다.

답변

4

으로는 SignalR와 허브를 사용하는 방법에 대한 on this ASP.NET page 진술 :

생성 된 프록시와 무엇을 위해하는 당신

당신과 함께 또는 프록시없이 SignalR 서비스와 통신 할 수있는 자바 스크립트 클라이언트를 프로그램 할 수 있습니다 SignalR이 생성합니다. 프록시가 수행하는 작업은 에 연결하는 코드의 구문을 단순화하고 서버에서 호출하는 메서드를 작성하고 서버에서 메서드를 호출합니다. 당신은 서버 메소드를 호출하는 코드를 작성하면

는, 생성 된 프록시 는 당신이 지역의 기능을 실행하는 것처럼 보이는 구문을 사용할 수 있습니다 대신 호출 ('serverMethod의 serverMethod (ARG1, ARG2를) 쓸 수 있습니다 ', arg1, arg2). 생성 된 프록시 구문도 이면 서버 메서드 이름이 인 경우 을 잘못 입력하면 즉시 알 수있는 클라이언트 쪽 오류가 발생합니다. 프록시를 정의하는 파일을 수동으로 만들면 서버 메서드를 호출하는 코드 을 작성하기위한 IntelliSense 지원을받을 수도 있습니다.

는 긴 이야기를 짧게 만들려면 : 당신이 SignalR 허브 또는 메서드 이름을 잘못 입력하는 경우이 진짜 JS 오류와 함께 당신의 인생을 더 쉽게 만드는

.

var contosoChatHubProxy = $.connection.contosoChatHub; 
contosoChatHubProxy.client.addContosoChatMessageToPage = function (name, message) { 
    console.log(name + ' ' + message); 
}; 

프록시없이 : 프록시와

당신이 프록시는 런타임에 생성 한 x 파일 생성 해야하는 경우

var connection = $.hubConnection(); 
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub'); 
contosoChatHubProxy.on('addContosoChatMessageToPage', function(name, message) { 
    console.log(name + ' ' + message); 
}); 

, 당신은 this section을 따를 수 있습니다 미리 캐싱 또는 번들 동작을 위해 생성 할 수 있습니다.

+0

참고로 "SignalR 생성 프록시 용 실제 파일을 만드는 방법"*이라는 섹션이 있습니다. 내 질문은 프로세스의 실제 출력 (예 : 내 하드 드라이브에서 물리적으로 액세스 할 수있는 생성 된 JavaScript 파일)을 정확하게 대상으로합니다. 이것은 '? – 0xDECAFBAD

+0

예, 정확하게; 질문의 필요를 반영하여 내 대답을 업데이트했습니다. – bsoulier