我正在运行股票信号器示例并尝试修改代码并尝试不同的东西。我想要的是在前端按钮按下以调用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);
}
}
答案 0 :(得分:1)
服务器上的Hub方法没有执行......什么
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.send("a","b");
的意思是:在每个与Hub有开放/主动连接的客户端上,我都在客户端上调用 send
函数 。不在服务器上的集线器上。