首页 文章

信号器无法连接到Firefox和Chrome上的集线器

提问于
浏览
0

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

以下是我的Hub类

public class UserHub:Hub {static long counter = 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.cs类中注册了 .

问题是信号器抛出错误“SignalR:没有订阅集线器 . ”当我刷新页面5次时,信号r连接到集线器,数据被拉出 .

有没有人面对这个问题?

任何帮助表示赞赏 .

谢谢

2 回答

  • 0

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

    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正在这样做 .

  • 0

    在订阅客户端方法后启动连接,如下所示:

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

相关问题