2017-06-07 12 views
1

私は株式signalrの例を実行していて、コードを修正して何か別のものを試してみようとしています。私が望んでいるのは、ajaxコールを呼び出すためのフロントエンドのボタンプレスであり、そこからハブメソッドを呼び出します。 HomeController.csSignalr Ajaxコールの後ろにあるコードからハブメソッドを呼び出す

[HttpPost] 
public void MyTest() 
{ 
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); 
context.Clients.All.send("a","b"); 
} 

ChatHub.cs

public class ChatHub : Hub 
{ 
public void Send(string name, string message) 
{ 
// Call the addNewMessageToPage method to update clients. 
Clients.All.addNewMessageToPage(name, message); 
} 
} 

答えて

1

$.connection.hub.start().done(function() { 
$('#sendmessage').click(function() { 
// Call the Send method on the hub. 
$.ajax({ 

url: '/home/MyTest/', 
type: "POST", 
success: function() { 
alert("done"); 
}, error: function (jqXHR, exception) { 
alert("failed"); 
} 

}); 
//chat.server.send($('#displayname').val(), $('#message').val()); 
// Clear text box and reset focus for next comment. 
$('#message').val('').focus(); 
}); 
}); 

:私はこれを行うと、私は私のハブ方式で

フロントエンドのコードの変更を私のブレークポイントを打つわけではありません

サーバー上のHubメソッドが実行されない...何か

var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); context.Clients.All.send("a","b");

が言っている:ハブにオープン/アクティブな接続を持っているすべてのクライアントでは、私はクライアントにsend機能を呼び出しています。サーバーのハブにはありません。

+0

ahhhhhhh ...ありがとうございます。私は私の髪を引っ張っていた。それではその関数呼び出しで "send"を呼び出します。私はサーバーに正しい呼び出しを呼び出すだろう –

+0

これは確かにそれを行うための1つの方法です –

+0

ありがとうマーク –

関連する問題