2017-01-27 1 views
1

신호 서버가 실행 중입니다. 업데이트 된 정보가 계속 전송됩니다. 나는 태그앵귤러 2 클라이언트의 SignalR API가 알림을 수신하지 않습니다.

$.connection.hub.url = "http://localhost:8080/signalr"; 
// Declare a proxy to reference the hub. 
var chat = $.connection.myHub; 
// Create a function that the hub can call to broadcast messages. 
chat.client.addMessage = function (name, message) { 
// Html encode display name and message. 
console.log ("chat.client.addMessage.index"); 
}; 

내에서 index.html을 코드를 다음했다 그리고 동일은 addMessage이 SignalR 허브 서버에서 호출

ngOnInit() { 
    jQuery.connection.hub.url = "http://localhost:8080/signalr"; 
    // Declare a proxy to reference the hub. 
    var chat = jQuery.connection.myHub; 
    // Create a function that the hub can call to broadcast messages. 
    chat.client.addMessage = function (name, message) { 
    // Html encode display name and message. 
     console.log ("chat.client.addMessage.index");  "" 
    }; 
    } 

파일 구성 요소 TS에 추가됩니다

. 그리고 index.html에 등록 된 addMessage는 수신하지만 구성 요소 ts에 등록 된 함수는 수신하지 않습니다.

디버그에서이 함수가 두 위치에 모두 등록되어있는 것을 알 수있었습니다. 두 함수를 호출하는 서버와 다른 함수를 등록하려고했습니다. 그러나 두 경우 모두 구성 요소/유형 스크립트에 등록 된 함수는 호출되지 않습니다. 내가 일을 SIGR를 받고 비슷한 문제를 가지고 있지만 결국 일하러 가야 관리

+0

다른 사람들에게 도움이되도록 아래의 답변을 허용 된 솔루션으로 제공해 주시겠습니까? –

답변

1

어떤 도움 감사합니다. 연결 함수에 대한 jQuery를 가져 오는 방법에 따라 다음과 같이 작업 할 수 있습니다.

this.connection = $.hubConnection("Url"); 
this.proxy = this.connection.createHubProxy("HubName"); 

this.proxy.on('someFunctionName', (data: any) => { 
    console.log(data); 
}); 
+0

var connection = jQuery.connection ('http : // localhost : 8080/signalr'); var proxy = connection.createHubProxy ("myHub"); 런타임 중에 메시지와 함께 실패합니다. 예외 : connection.createHubProxy는 함수가 아닙니다. – Paperless

+0

이것은 내가 언급 한 jquery를 가져 오는 방법에 따라 다릅니다. 이것을 파일 맨 위에 추가합니다 ... declare var $ : any; –

+0

이제 다음과 같은 코드가 있습니다. $ 다음에 선언하십시오. ngOnInit() { $ .connection.hub.url = "http : // localhost : 8080/signalr"; var chat = jQuery.connection.myHub; $ .connection.hub.start(). done (function() { }); chat.client.addMessage = function (name, message) { }; } 웹 서버가 포트 3000에서 실행 중이고 singnalr이 8080에서 실행 중입니다. 다음 오류가 발생합니다. 그러나 index.html – Paperless

관련 문제