我想设置限制来控制同时登录的用户数。
场景: -
我有一个MVC网络应用程序,// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' === app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
将以XYZ金额购买我的应用程序。我将允许3个用户同时登录该App。现在Customer A
再次来到我面前说我希望将用户限制的数量增加到10.我会说好的支付这么多我会做的。
现在我想将用户登录用户(同时)限制设置为10.
我的问题是如何在MVC中实现这一概念。
我的所作所为: -
我使用Customer A
变量来实现这一点,但有一些情况,比如用户登录但没有注销他/她当时关闭浏览器我如何命令当前登录的用户数。
答案 0 :(得分:0)
您无法强制退出,也无法确定浏览器何时关闭。
我有两个建议
客户端到服务器: 如果你期望一个相对较低的并发用户数,我会有一个全局的Jquery函数,它会在x秒内轮询服务器。
用户登录,存储他们的"令牌"," IP"和"最后的行动时间"并给他们'#34;令牌" (令牌应该是唯一的)。 每隔x秒,有一个jquery函数用令牌调用服务器并更新"最后一个动作时间"
登录时,测试用户是否有10个当前处于活动状态的登录。如果是,请拒绝。 (在x秒内的最后一次动作)
服务器到客户端 使用信号器或其他技术来轮询登录用户以查看他们是否仍然登录。