【问题标题】:Signalr Calling Hub Method from Code Behind Ajax CallSignalr 从 Ajax 调用背后的代码调用集线器方法
【发布时间】:2017-06-08 03:21:18
【问题描述】:

我正在运行股票信号器示例并尝试修改代码并尝试不同的方法。我想要的是在前端按钮上按下以调用 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);
}
}

【问题讨论】:

    标签: c# signalr signalr-hub


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊啊啊啊啊……谢谢。我正在拔头发。那么在那个函数中调用“send”。我会正确调用服务器
    • 这是一种方法,当然是的
    • 非常感谢马克
    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多