0
我正在创建一个应用程序功能,可以实时查看正在查看特定页面的用户数量。如何使用signalR保持特定页面浏览量的实时计数器?
到目前为止,我所能实现的是我可以计算整个站点的会话数量,这很好,但是我希望能够保持用户数量的计数正在查看特定页面。
我的另一个问题是计数是浏览器会话,这意味着如果我有几个选项卡打开相同的页面,然后计数将增加标签数量。我将如何唯一识别每个用户?
C#:
public class View : Hub
{
public static int SiteSessionCount;
public void ViewerCountChanged(int viewerCount)
{
Clients.All.viewerCountChanged(viewerCount);
}
public override Task OnConnected()
{
Interlocked.Increment(ref SiteSessionCount);
ViewerCountChanged(SiteSessionCount);
return base.OnConnected();
}
public override Task OnDisconnected()
{
Interlocked.Decrement(ref SiteSessionCount);
ViewerCountChanged(SiteSessionCount);
return base.OnDisconnected();
}
}
的Javascript:
<script src="/Scripts/jquery.signalR-1.1.4.js"></script>
<script src="/signalr/hubs"></script>
<script>
var hubProxy = $.connection.view;
hubProxy.client.viewerCountChanged = function (count) {
$("#siteSessionsCount").text(count);
};
$.connection.hub.start();
</script>