从Ajax调用后面的代码调用信号器调用集线器方法

时间:2017-06-07 19:16:42

标签: c# signalr signalr-hub

我正在运行股票信号器示例并尝试修改代码并尝试不同的东西。我想要的是在前端按钮按下以调用ajax调用并从那里调用hub方法。当我这样做时,我没有在我的集线器方法中击中断点

前端代码更改:

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

在HomeController.cs

[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 个答案:

答案 0 :(得分:1)

服务器上的Hub方法没有执行......什么

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

的意思是:在每个与Hub有开放/主动连接的客户端上,我都在客户端上调用 send 函数 。不在服务器上的集线器上。