我正在一个网站上统计在线用户总数。我知道有人分配也有同样的问题。但是我再次询问是因为如果要进行更新,现在需要做一些不同的事情,因为我在教程中看到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”的路径不正确?
让我知道原因是什么以及如何解决。