Signalr 从代码隐藏中调用集线器方法 Ajax 调用
Signalr Calling Hub Method from Code Behind Ajax Call
我是 运行 股票信号器示例,正在尝试修改代码并尝试一些不同的东西。我想要的是按下前端按钮调用 ajax 调用,然后从那里调用集线器方法。当我这样做时,我没有在我的集线器方法中遇到我的断点
前端代码更改:
$.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);
}
}
服务器上的 Hub 方法没有执行...什么
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.send("a","b");
意思是:在每个与集线器有 open/active 连接的客户端上,我正在调用 send
函数 在客户端。不在服务器上的集线器上。
我是 运行 股票信号器示例,正在尝试修改代码并尝试一些不同的东西。我想要的是按下前端按钮调用 ajax 调用,然后从那里调用集线器方法。当我这样做时,我没有在我的集线器方法中遇到我的断点
前端代码更改:
$.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);
}
}
服务器上的 Hub 方法没有执行...什么
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.send("a","b");
意思是:在每个与集线器有 open/active 连接的客户端上,我正在调用 send
函数 在客户端。不在服务器上的集线器上。