SignalR GetHubContext 方法不触发中心方法

本文关键字:方法 GetHubContext SignalR | 更新日期: 2023-09-27 18:36:29

我正在尝试在同一解决方案中从另一个项目的一个项目中运行 signalR 集线器方法。这两个项目在同一 Web 前端上运行。

调用以下代码时,代码在中心运行,直到由于未使用 IHubContext 对象而预期出错。

presentation.ChatHub ch = new ChatHub();
ch.Send(message, "", "");

发生这种情况时,我将代码更改为以下内容,但是中心内的代码不再运行。

IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.Send(message, "", "");

中心代码的调用方式如下:

public class ChatHub : Hub
{
    public int Send(string message, string fName, string IName)
    {
    //Code Goes here.
    }

我读过的所有内容,包括这里的其他答案,似乎都指向获取IhubContext然后调用客户端.all应该可以工作,但我不知道为什么它不起作用

编辑:我已经更改了我的代码,以便在运行之前在数据库中创建一个帖子,并对其进行了更改,以便它运行"broadcastMessage"函数,该函数与javascript接收端匹配。 然而,这仍然没有正确连接,JavaScript功能也没有被击中。

   IHubContext context = GlobalHost.ConnectionManager.GetHubContext("chatHub");
   context.Clients.All.broadcastMessage(message, pid, userName, FirstName, count, "", "", nDate);

SignalR GetHubContext 方法不触发中心方法

我不是 100% 对此,但基于我对以下页面的理解: ASP.Net SignalR Hub API它的意思是,当您从集线器外部调用方法时,您不是在调用您在集线器上定义的方法,而是告诉集线器在所有连接的客户端上激活 jquery。

这就是你没有看到中心方法激活的原因。