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>