2017-01-27 7 views
1

signalrサーバーを実行しています。それは更新された情報を送信し続けます。角度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内のコードを次しているがコンポーネントTSファイルに追加され

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

そしてaddMessageはSignalRハブサーバーから呼び出されます。そして、コンポーネントのtsに登録された関数ではなく、index.htmlに登録されたaddMessageによって受信されます。

デバッグ時に、その機能が両方の場所に登録されていることがわかりました。 私は、異なる機能とサーバを両方とも呼び出す登録を試みました。しかしどちらの場合でも、コンポーネント/タイプスクリプトに登録された関数は呼び出されません。私は仕事にSIGRを得る同様の問題があったが、それは最終的に仕事を得ることに成功し

+0

他の人に役立つように、以下の回答を受け入れることができますか? –

答えて

1

すべてのヘルプは感謝してます。どのように接続関数のjQueryをインポートするかによって、私はこのように動作します...

+0

var connection = jQuery.connection( 'http:// localhost:8080/signalr'); var proxy = connection.createHubProxy( "myHub"); 実行時にメッセージで失敗する 例外:connection.createHubProxyは関数ではありません – Paperless

+0

これは、前述のようにjqueryをどのように持ち込むかによって異なります。これをファイルの先頭に追加... declare var $:any; –

+0

今私は次のコードを持っています:宣言後$:任意 ngOnInit(){ $。接続hub.url = "http:// localhost:8080/signalr"; var chat = jQuery.connection.myHub; (function(){ }); chat.client.addMessage = function(名前、メッセージ){ }; } Webサーバーがポート3000で実行されており、singnalrが8080で実行されています 次のエラーが発生しています。しかし、私はindex.html – Paperless

関連する問題