Signalr 无法连接到 firefox 和 chrome 上的集线器

Signalr doesn't connect to hubs on firefox and chrome

我有一个与信号 R 集成的基本 MVC 应用程序。我正在跟踪使用此应用程序的在线用户。

以下是我的中心 class

public class 用户中心:中心 { 静态长计数器 = 0;

public override Task OnConnected()
{
    //Update Count when User is connected
    counter = counter+1;
    Clients.All.UpdateCount(counter);
    return base.OnConnected();
}

public override Task OnDisconnected(bool stopCalled)
{

    counter = counter-1;
    Clients.All.UpdateCount(counter);
    return base.OnDisconnected(stopCalled);

}

}

以下是我的 javascript 代码

        $.connection.hub.logging = true;
        //setup hubs
        var userHub = $.connection.userHub;
        $.connection.hub.start().done(function () {

        });

        //function to recieve data from server
        userHub.client.UpdateCount = function (count) {
            $('#counter').text(count);
        }

我也在startup.csclass中注册了。

问题是 signalr 正在抛出错误 "SignalR: No hubs have been subscribed to. " 当我刷新页面大约 5 次时,信号 r 连接到集线器并且正在提取数据。

有人遇到过这个问题吗?

感谢任何帮助。

谢谢

我能够通过设置超时来解决问题。以下是我的代码。

var cHub = $.connection.userHub;
            setTimeout(function () {
                $.connection.hub.start();
            },
                1000);
            //function to recieve data from server
            cHub.client.UpdateCount = function (count) {
                $('#counter').text(count);
            }

            $.connection.hub.logging = true;

我仍然无法弄清楚为什么 firefox 会那样做。

订阅客户端方法后开始连接,如下所示:

var cHub = $.connection.userHub;
cHub.client.UpdateCount = function (count) {
    $('#counter').text(count);
}

$.connection.hub.start();