SignalR GetHubContext方法没有触发hub方法

时间:2015-01-07 09:27:54

标签: c# asp.net signalr

我正在尝试在同一解决方案中的另一个项目中的一个项目中运行signalR hub方法。这两个项目都在同一个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然后调用clients.all应该可以工作,但我不知道为什么它不起作用

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

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

1 个答案:

答案 0 :(得分:2)

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

这就是为什么你没有看到你的集线器方法激活。