MVC SignalR用户计数JS问题

问题描述 投票:0回答:1

我正在一个网站上统计在线用户总数。我知道有人分配也有同样的问题。但是我再次询问是因为如果要进行更新,现在需要做一些不同的事情,因为我在教程中看到signalr-2.1.0和signalr-2.2.0,而我现在使用的JavaScript是2.4.1。

我一直在研究如何正确实现SignalR,但仍然没有找到明确的解决方案。我的问题是JQuery代码不想响应mywebsitehub。不知道为什么。这是我的代码:

JQuery:

<script type="text/javascript" src="~/Scripts/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="~/Scripts/jquery.signalR-2.4.1.min.js"></script>
<script src="signalr/hubs"></script>
<script type="text/javascript">
$(function () {
    var counterHub = $.connection.mywebsitehub;

    $.connection.hub.start().done(function () {

    });

    counterHub.client.updatecounter = function (count) {
        $("#counter").text(count);
    }
});
</script>

我在C#中的中心:

public class MyWebsiteHub : Hub
{
    static long Counter = 0;

    public override Task OnConnected()
    {
        Counter++;
        base.OnConnected();
        this.Clients.All.Update(Counter);
        return Task.CompletedTask;
    }

    public override Task OnDisconnected(bool stopCalled)
    {
        Counter--;
        base.OnDisconnected(stopCalled);
        this.Clients.All.Update(Counter);
        return Task.CompletedTask;
    }
}

而且我的startup.cs中也有。

app.MapSignalR(“ / signalr”,新的HubConfiguration());

我不确定中心类的位置是否重要,因此将其放在:

〜/ Classes / MyWebsiteHub.cs

我收到的错误消息:

Uncaught TypeError: Cannot read property 'mywebsitehub' of undefined
    at HTMLDocument.<anonymous> ((index):100)
    at e (jquery-3.4.1.min.js:2)
    at t (jquery-3.4.1.min.js:2)

所以,可能是什么原因? SignalR更新?我的Hub类位置?也许“〜/ signalr / hubs”的路径不正确?

让我知道原因是什么以及如何解决。

c# jquery asp.net-mvc signalr signalr-hub
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.