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

ISH*_*IDA 2 javascript asp.net-mvc signalr signalr-hub

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

以下是我的 Hub 课程

公共类 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);

}
Run Code Online (Sandbox Code Playgroud)

}

以下是我的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);
        }
Run Code Online (Sandbox Code Playgroud)

我也注册了 in startup.cs 类。

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

有没有人遇到过这个问题?

任何帮助表示赞赏。

谢谢

Ofi*_*fir 5

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

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

$.connection.hub.start();
Run Code Online (Sandbox Code Playgroud)

  • 在这里看看:/sf/ask/1124525601/ 基本上,signalR 订阅集线器客户端回调在开始时,您必须先定义它。 (2认同)