首先,我知道我们无法在SignalR
中访问会话变量和应用程序变量。但我的要求是我希望通过SignalR OnConnect()
和OnDisconnect()
方法增加或减少当前登录的用户数。
我已经使用下面的代码。
SignalR Hub类: -
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
,然后显示消息
“您已达到最大并行用户登录权限!”
但是我无法将Application变量用于SignalR - 所以我的问题是如何在_userCount
或任何其他{{1}中访问Login.aspx.cs
变量页面。
我可以从SignalR Hub调用任何服务器方法吗?
任何帮助将不胜感激!
谢谢
答案 0 :(得分:1)
将您的_userCount变量公开,并将SampleHub类的引用添加到Login.aspx.cs或您想要的任何其他cs页面,并访问您的_userCount变量。
#ID Date Title
j234hg 19 October 1969 court scene with cardinal richelieu
d45j5jkd 28 December 1969 THE ROYAL PHILHARMONIC ORCHESTRA GOES TO THE BATHROOM
s4k5jk 8 December 1970 crossing the atlantic on a tricycle
zd7u4h 19 October 1969 Bicycle Repair Man
f983 22 December 1970 Royal Episode 13 (or: The Queen Will Be Watching)
j8s74 15 September 1970 THE SEMAPHORE VERSION OF WUTHERING HEIGHTS
n4j6l3j 7 December 1972 Mr. Pither
在Login.aspx.cs页面上使用它:
public static int _userCount=0;
希望这会对你有所帮助