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);
我不是 100% 对此,但基于我对以下页面的理解: ASP.Net SignalR Hub API它的意思是,当您从集线器外部调用方法时,您不是在调用您在集线器上定义的方法,而是告诉集线器在所有连接的客户端上激活 jquery。
这就是你没有看到中心方法激活的原因。