2017-03-09 107 views
0

首先,我知道我們無法訪問SignalR中的會話變量和應用程序變量。但我的要求是我想增加或減少SignalR OnConnect()OnDisconnect()方法當前登錄的用戶數。 我已經使用下面的代碼。如何在SignalR Hub類中設置應用程序變量?

SignalR集線器級別: -

public class SampleHub : Hub 
{ 
    // Use this variable to track user count 
    private static int _userCount = 0; 

    // Public hub methods 
    : 

    // Overridable hub methods 
    public override Task OnConnected() 
    { 
     _userCount ++; // this I want to set in Application variable 
    } 
    public override Task OnReconnected() 
    { 
     _userCount ++; // this I want to set in Application variable 
    } 
    public override Task OnDisconnected(bool stopCalled) 
    { 
     _userCount --; // this I want to set in Application variable 
    } 
} 

當另一個用戶登錄到系統中_userCount變量設置值之後。在登錄按鈕單擊事件我想檢查if _userCount >= 11然後顯示消息

「您已達到最大併發用戶登錄限制!」

但我不能夠使用應用程序變量爲SignalR - 所以我的問題是我怎樣才能讓_userCount變量的訪問中Login.aspx.cs或任何其他.aspx.cs頁面。 我可以從SignalR Hub調用任何服務器方法嗎?

任何幫助將不勝感激!

謝謝

回答

1

讓您_userCount變量公衆和增加Login.aspx.cs或任何你想要的其他CS頁面SampleHub類的參考和訪問您的_userCount變量。

public static int _userCount=0; 

在Login.aspx.cs頁面使用這樣的:

int usercount = SampleHub._userCount; 

希望這將幫助你

相關問題