如何在 SignalR Hub class 中设置应用程序变量?
How to set Application Variable in SignalR Hub class?
首先我知道我们无法访问SignalR
中的会话变量和应用程序变量。但我的要求是我想通过 SignalR OnConnect()
和 OnDisconnect()
方法增加或减少当前登录的用户数。
我已经使用以下代码完成了。
SignalR 中心 Class :-
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
然后显示消息
"YOU HAVE REACHED MAXIMUM CONCURRENT USER LOG IN LIMIT !"
但我无法在 SignalR 中使用 Application 变量 - 所以 我的问题是 如何访问 Login.aspx.cs
中的 _userCount
变量或任何其他 .aspx.cs
页面。
我可以从 SignalR Hub 调用任何服务器方法吗?
任何帮助将不胜感激!
谢谢
创建您的 _userCount 变量 public 并将 SampleHub class 的引用添加到 Login.aspx.cs 或您想要访问的任何其他 cs 页面并访问您的 _userCount 变量。
public static int _userCount=0;
在Login.aspx.cs页面上这样使用:
int usercount = SampleHub._userCount;
希望对您有所帮助
首先我知道我们无法访问SignalR
中的会话变量和应用程序变量。但我的要求是我想通过 SignalR OnConnect()
和 OnDisconnect()
方法增加或减少当前登录的用户数。
我已经使用以下代码完成了。
SignalR 中心 Class :-
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
然后显示消息
"YOU HAVE REACHED MAXIMUM CONCURRENT USER LOG IN LIMIT !"
但我无法在 SignalR 中使用 Application 变量 - 所以 我的问题是 如何访问 Login.aspx.cs
中的 _userCount
变量或任何其他 .aspx.cs
页面。
我可以从 SignalR Hub 调用任何服务器方法吗?
任何帮助将不胜感激!
谢谢
创建您的 _userCount 变量 public 并将 SampleHub class 的引用添加到 Login.aspx.cs 或您想要访问的任何其他 cs 页面并访问您的 _userCount 变量。
public static int _userCount=0;
在Login.aspx.cs页面上这样使用:
int usercount = SampleHub._userCount;
希望对您有所帮助