2014-05-01 2 views
0

클라이언트로부터 단일 메서드 허브에있는 public 메서드를 숨길 방법이 있습니까? 나는 인증을 말하는 것이 아니다. 나는 그들이 클라이언트 API를 위해 전혀 생성되기를 원하지 않는다. 그러나, 내 프로젝트에서 다른 DLL에서 액세스 할 수 있기를 원합니다 (따라서 내부가 아닌 공개가되어야합니다). 다양한 세션 조회를 수행하기 위해 호출하는 컨트롤러 메소드가 있으며, 컨트롤러에서 SignalR 허브로 호출하려고합니다.SignalR Hub에서 public 메서드를 숨기는 방법

+0

"숨기기"란 무엇입니까? 어떤 기준에 따라 숨기시겠습니까? 어떤 종류의 고객이 당신에 대해 이야기하고 있습니까? signalr 클라이언트가 코드에 전혀 액세스하지 못하게하려는 이유는 무엇입니까? –

+0

허브 안에있는 개인 컬렉션이 있습니다. 개인 컬렉션은 응용 프로그램에서 특정 상황이 발생할 때 업데이트해야합니다. 내 응용 프로그램 내부에서 메서드를 호출 할 수 있어야합니다. 메서드에 대한 javascript가 생성되는 것을 원하지 않습니다. 메서드가 내 허브와 밀접하게 관련되어 있지만 '연결된'클라이언트에서 호출 할 수 없습니다. – KingOfHypocrites

답변

1

메소드가 클라이언트에 의해 호출되어서는 안되는 경우, 허브에 존재해서는 안됩니다. 나는이 논리를 허브에서 추출하여 커넥터로만 사용하는 것이 좋습니다.

할 수 있습니다 허브 구성 disable the generated proxy :

var config = new HubConfiguration 
    { 
     EnableJavaScriptProxies = false 
    }; 

하지만이 모든 방법에 영향을 미치고까지 내가 순간에 방법에 따라 사용자 정의 할 수 없다는 것을 알아 (클라이언트가 여전히 호출과 메소드를 호출 할 수 있습니다)로 .

+0

여기에는 불가능한 것처럼 보입니다. http://stackoverflow.com/questions/20522489/suppress-proxy-generation-for-some-hubs-or-methods >> 인터페이스처럼 사용하는 해결 방법이 있지만 내가 원하는 것을 얻기 위해 사용할 수 있습니다. – KingOfHypocrites

관련 문제