簡體   English   中英

如何在SignalR Hub類中設置應用程序變量?

[英]How to set Application Variable in SignalR Hub class?

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

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中使用Application變量-所以我的問題是如何在Login.aspx.cs或任何其他.aspx.cs頁面中訪問_userCount變量。 我可以從SignalR Hub調用任何服務器方法嗎?

任何幫助將不勝感激 !

謝謝

公開您的_userCount變量,並將SampleHub類的引用添加到Login.aspx.cs或您想要的任何其他CS頁面中,並訪問_userCount變量。

public static int _userCount=0;

在Login.aspx.cs頁面上,像這樣使用它:

int usercount = SampleHub._userCount;

希望這個能對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM