Tengo una aplicación PHP que estoy buscando para limitar el número de usuarios que pueden estar activos en un momento dado. Me gustaría mantenerlo lo más ligero posible ya que el motivo para implementarlo es porque nuestro servidor actual no puede manejar la carga, por lo tanto, esta es una solución temporal hasta que podamos actualizar. Almacenamos nuestras sesiones en Memcache, así que escribí el siguiente script para contar las sesiones activas y almacenarlas en un archivo plano; este script se ejecuta cada 5 minutos.Límite de usuario para mi aplicación PHP - con el código de ejemplo
<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
$activeSessions = $memcache->getStats();
$file_content = <<<TEXT
<?php
\$activeSessions = {$activeSessions['curr_items']};
?>
TEXT;
file_put_contents("activesessions.php", $file_content);
?>
Ahora en la parte superior de cada página es fácil saber cuántos usuarios están actualmente activos ... mi problema ahora es si hay más que el límite para detener a más personas la creación de sesiones. La razón de por qué esto es un problema es que no tengo forma de saber si el usuario carga de la página ya tiene una sesión activa sin hacer algo como:
<?php
include ('activesessions.php');
//uid is the users facebook id
session_id(md5($uid.$secret));
session_start();
if ($activeSessions > $limit && empty($_SESSION))
{
session_destroy();
include('limit_message.php');
exit;
}
?>
que debe hacer el truco, pero en el proceso se creará una sesión para verificar si la sesión existe: S ... por lo tanto sesgando mi cuenta de sesión activa.
Así que esencialmente tengo una solución ... mi pregunta es si alguien tiene una mejor? Sin embargo, si usted piensa que mi solución es el mejor favor comentar o hasta-voto que me permita saber: D
Por favor ayuda :)
Tantas vistas y un poco de comentarios: S –
Posible duplicado de [Contar y limitar el número de usuarios en mi aplicación] (http://stackoverflow.com/questions/4065026/). – netcoder