2017-04-06 15 views
1

ハブコードSignalR。カントは、生成されたプロキシでOnConnected()

public class TestHub : Hub 
    { 
     public void Message(string message) 
     { 
       Clients.Group("testGroup").displayMessage(message); 
     } 
     public override Task OnConnected() 
     { 
      Groups.Add(Context.ConnectionId, "testGroup"); 
      return base.OnConnected(); 
     } 
    } 

Javascriptのコードに到達

var myHub = $.connection.testHub; 
myHub.on('message', this.displayMessage); 

$.connection.hub.start(); 



function displayMessage(message) { 
console.log(message); 
} 

私が行う場合、それが正しく実行されている)hub.start(ように思えるし、それを返すの上にいくつかのオブジェクトの形。しかし、OnConnected内のブレークポイントでデバッグすると、決してヒットしません。

提案がありますか?

+1

あなたはいくつかのコードがありません。これを見てくださいhttps://github.com/SignalR/SignalR/issues/1065 –

+0

それはmyHub.on( 'message'、this.displayMessage)と同じだったと思いました。または私は何かを逃していますか? –

答えて

3

ハブにサブスクリプションがない場合、基本的にハブ・メソッドを呼び出すことはできますが、OnConnectは機能しません。 それは変ですが、それはそれが動作する方法です。

var myHub = $.connection.testHub; 

//add subscriptions 
$.extend(myHub.client, { 
    stupidLogicSignalR: function() {} 
}); 

myHub.on('message', this.displayMessage); 
$.connection.hub.start(); 

Here's同様の質問:

はこのようにそれを実行してください。

$.connection.hub.logging = true; 

かにコールバックを割り当てる: はまた、このissue

0

購読

myHub.client.displayMessage =() => {console.log('message');}; 
+0

私の回答はあなたには関係ありませんでしたか?あなたが使っている行は、追加するように言ったのとまったく同じことをしています。 –

0

のために他の構文で勤務することができます(var myHub = $.connection.testHub;後にそれを行う)ことにより、フロントエンドにログインできます。始めて:

$.connection.hub.start().done(function() { 
console.log("connection started") 
}); 
関連する問題