2017-03-09 100 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; 

希望这将帮助你

相关问题