Signalr 信号器2.0一个连接多页故障

Signalr 信号器2.0一个连接多页故障,signalr,Signalr,我正在使用signalR开发一个应用程序,特别是2.0,其中signalR连接是在第一页创建的。连接在整个页面中使用,并且在集线器中有多个调用 [HubName("broadcastHub")] public class BroadcastHub : Hub { } class SignalRHubInterface { private static SignalRHubInterface self; public IHubContext context = GlobalHo

我正在使用signalR开发一个应用程序,特别是2.0,其中signalR连接是在第一页创建的。连接在整个页面中使用,并且在集线器中有多个调用

[HubName("broadcastHub")]
public class BroadcastHub : Hub
{

}

class SignalRHubInterface
{
    private static SignalRHubInterface self;
    public IHubContext context = GlobalHost.ConnectionManager.GetHubContext<BroadcastHub>();

    public static SignalRHubInterface Instance
    {
        get
        {
            if (self == null)
            {
                self = new SignalRHubInterface();
            }

            return self;
        }
    }

    public void BroadcastListA(List<string> listA)
    {
        context.Clients.All.listA(listA);
    }

    public void BroadcastListB(List<string> listB)
    {
        context.Clients.All.listB(listB);
    }

    public void BroadcastListC(List<string> listC)
    {
        context.Clients.All.listC(listC);
    }
}
这些函数可以在第一页中调用,但不能在任何其他页中调用。试图在另一页中加载信号器函数会导致连接集线器出错

尝试在第二页上调用信号器函数时,找不到该函数。我相信这可能是因为后续页面上没有加载函数的问题

函数由以下人员在单独的类中调用:

SignalRHubInterface.Instance.BroadcastListA(listA);

我已经在这上面停留了一段时间,因此非常感谢您的帮助

在调用
$.connection.hub.start()
之前,需要在JavaScript中连接客户端方法

我还建议连接
.done()
.fail()
回调调用
.start()
,以便验证SignalR客户端已成功建立连接

当您遇到问题时,在SingalR JS客户端中启用日志记录也很有用:

SignalRHubInterface.Instance.BroadcastListA(listA);