2017-01-27 3 views
1

Ich habe Signaler Server läuft. Das sendet aktualisierte Informationen weiter.SignalR API in Winkel 2 Client erhält keine Benachrichtigung

Ich habe folgenden Code in index.html innerhalb tag

$.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"); 
}; 

Und gleiche wird in der Komponente ts hinzugefügt

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");  "" 
    }; 
    } 

Der addMessage von SignalR Hub-Server-Datei aufgerufen wird. Und wird von addMessage empfangen, die in index.html registriert ist, aber nicht von der in der Komponente ts registrierten Funktion.

Beim Debugging konnte ich feststellen, dass die Funktion an beiden Orten registriert wurde. Ich habe versucht, verschiedene Funktionen registrieren und Server beide Funktionen aufrufen. In beiden Fällen wird jedoch die im Skript component/type registrierte Funktion nicht aufgerufen.

wird jede Hilfe

+0

Könnten Sie bitte die folgende Antwort als die akzeptierte Lösung, so dass es anderen hilft? –

Antwort

1

dankbar sein, ich SIGR ähnliche Probleme hatte immer es am Ende zu arbeiten, um zu arbeiten, aber geschaffen, zu erhalten. Abhängig davon, wie Sie jQuery für die Verbindungsfunktionen importieren, habe ich es so zu arbeiten ...

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/signager'); var proxy = connection.createHubProxy ("myHub"); Es schlägt mit der Nachricht während der Laufzeit AUSNAHME: connection.createHubProxy ist keine Funktion – Paperless

+0

Es hängt davon ab, wie Sie jquery wie ich erwähnt bringen. Fügen Sie dies an den Anfang der Datei ... deklarieren var $: any; –

+0

Nun habe ich folgenden Code: nach declare $: any ngOnInit() { $ .connection.hub.url = "http: // localhost: 8080/signaler"; var chat = jQuery.connection.myHub; $ .connection.hub.start(). Done (function() { }); chat.client.addMessage = Funktion (Name, Nachricht) { }; } Mein Webserver läuft in Port 3000 und Singnalr läuft auf 8080 Ich bekomme folgenden Fehler. Aber ich sehe keinen dieser Fehler, wenn ich den gleichen Code in index.html einfügen – Paperless

Verwandte Themen