SignalR GetHubContext 方法未触发集线器方法

SignalR GetHubContext method not firing hub method

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

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

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

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

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

hub代码调用如下:

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

我读过的所有内容(包括此处的其他答案)似乎都指向获取 IhubContext 然后调用 clients.all 应该有效,但我不知道为什么它不起作用

编辑:我更改了我的代码,以便在运行之前在数据库中创建一个 post,并更改它以便它运行 'broadcastMessage' 函数,该函数与 javascript接收端。然而,它仍然没有正确连接并且 javascript 功能没有被击中。

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

我不是 100% 同意这一点,但根据我对以下页面的理解:ASP.Net SignalR Hubs API 这就是说,当您从集线器外部调用方法时,您并不是在调用集线器上定义的方法,而是告诉集线器在所有连接的客户端上激活 jquery。

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