2013-04-12 4 views
0

모든 signalR 예는 사용이 무엇인지 충분히 explainning없이signalR 스크립트 참조?

<script src="/signalr/hubs" type="text/javascript"></script>

을 보여줍니다.

Html 페이지의 경우 폴더 위치입니다. 거기에는 스크립트가 없습니다.

왜이 회선이 사용되고 있습니까?

답변

3

/signalr/hubs 페이지는 SignalR 프로젝트의 모든 허브에 대해 생성 된 허브 프록시를 포함하는 SignalR에 의해 자동 생성 된 JavaScript 파일입니다.

예를 들어 (http://shootr.signalr.net/signalr/hubs에서 가져옴) 코드 스 니펫을 살펴볼 수 있습니다.

proxies.h = this.createHubProxy('h'); 
      proxies.h.client = { }; 
      proxies.h.server = { 
       changeViewport: function (viewportWidth, viewportHeight) { 
        return proxies.h.invoke.apply(proxies.h, $.merge(["changeViewport"], $.makeArray(arguments))); 
       }, 

       fire: function() { 
        return proxies.h.invoke.apply(proxies.h, $.merge(["fire"], $.makeArray(arguments))); 
       },   
... 

"this"는 허브 연결을 나타내거나 $ .connection.hub를 나타냅니다. 그래서 우리는 본질적으로 proxies.h = $ .connection.hub.createHubProxy ('h');

이제 'h'는 서버의 허브입니다. https://github.com/NTaylorMullen/ShootR/blob/master/ShootR/ShootR/Server/GameHub.cs을 참조하십시오. 특히 허브 이름 속성을 살펴보십시오.

다음으로 우리는 proxies.h.client; 이것은 사용자가 서버에서 호출 할 클라이언트 측 기능을 선언 할 수있는 엔드 포인트입니다.

그러면 우리는 proxies.h.server를 가지고 있는데, 이것은 GameHub.cs의 모든 공개 허브 메소드를 참조합니다. 따라서 일부 함수는 changeViewport 및 fire입니다. 이 코드는 각 허브를 나타 내기 위해 서버에서 자동 생성됩니다. 사용자가 다음이 도움이

var myGameHub = $.connection.h; 

희망을 통해 액세스 할 수 있도록/허브 파일 signalr의 끝에

마지막으로 우리는 $ .connection 객체에 동적으로 생성 된 허브의 모든 확장!