Enlaces recomendados

Publicidad

Usuarios en línea

estadisticas de usuarios online

El algoritmo de usuarios en línea

Este algoritmo se ejecuta cada vez que se visualiza una página de una web que tiene instalado el código, por tanto es muy importante optimizarlo para disminuir la carga del servidor.

De este algoritmo depende la escalabilidad del servicio, hay webs que pueden mostrar este código miles de veces al día.

  1. Obtenemos la página web que contiene el código:
    referer=request.servervariables(«HTTP_REFERER»)
    Esta información la transmite el navegador del usuario aunque existe software de ocultación de identidad que puede bloquear esta info.
  2. En caso de que no se disponga de esta información, el usuario no se contabilizará y por tanto al usuario en cuestión no se le informará de los usuarios en línea de esa web.Si referer no es nulo, eliminamos «http://www.» y todas sus variantes de la dirección y nos quedamos con el resto.
  3. Obtenemos el parámetro web.
    Este parámetro identifica la web y nos permite localizarla en nuestra base de datos o en las variables de aplicación. Hay que recordar que el servicio sólo funciona con webs registradas.En primer lugar se verifica que el parámetro es sintácticamente correcto. De no serlo se genera un mensaje de error y se finaliza.
    A continuación se busca el directorio asociado a esta web en una variable de aplicación. Si no existe la variable de aplicación significa que es la primera vez que se accede desde esa web (desde el último reinicio del servidor web).
    En este caso, hay que acceder a la base de datos y cargar el directorio de la web en la variable de aplicación, si no se encontrase se anotará en la variable de aplicación y se generará un mensaje de error. Además aprovechamos el acceso a la base de datos para cargar en otra variable de aplicación el número máximo de usuarios en línea y actualizar en la base de datos la fecha del último acceso.Si hemos llegado a este punto, tenemos garantizado que accedemos a una web registrada. Verificaremos que la página donde está instalado el código (referer) está contenida en el directorio de la web, de esta forma sólo contabilizamos accesos desde páginas de la web registrada, ignorando accesos desde páginas en cache de buscadores o accesos a mano.
  4. Comprobamos si tenemos variable de sesión asociada a la web. Si es así significa que el mismo usuario ya ha accedido desde otra página de esta web y por tanto no hay que contabilizarlo.Si no hay variable de sesión, la creamos y además añadimos el identificador de la web a una varible de sesión genérica (usu_activosc). Esto es necesario porque es posible que un mismo usuario acceda a varias webs distintas que usen nuestro código. En este punto incrementamos el contador de usuarios en línea asociado a esta web (variable de aplicación) y cuando finalice la sesión habrá que decrementar el contador de todas las webs asociadas a esta sesión, de ahí la importancia de la variable genérica.
    Voy a ilustrar esto con un ejemplo. Imaginar que un usuario accede desde la web 17, esto se reflejaría de esta forma:
    session(«usu_activos17»)=17
    session(«usu_activosc»)=17
    Si posteriormente ese mismo usuario accede desde la web 23 a nuestro servicio, se reflejará de esta forma:
    session(«usu_activos23»)=23
    session(«usu_activosc»)=17,23
    Cuando pasen más de 20 minutos que ese usuario no accede a nuestra plataforma, se ejecutará la función de cierre de sesión de global.asa que consultará session(«usu_activosc») y decrmentará los contadores de todas las web de la lista (17 y 23, en nuestro ejemplo)
  5. Obtener la IP del usuario y añadirla a una lista mantenida en una variable de aplicación asociada al codigo de la web. Si previamente no estaba la IP en la lista incrementaremos el contador de usuarios en línea. De esta forma evitamos contar accesos realizados desde la misma IP como usuarios distintos.Además incrementaremos contadores totales y compararemos valores de los contadores modificados con los valores máximos para actualizar los máximos en caso de que se superen. En caso de que se alcance un máximo se actualiza la base de datos con la información.
  6. Generar el código javascript con el valor del contador.

Y eso es todo lo que se hace cada vez que una página de una web que tiene el código instalado es cargada en un navegador de un usuario.

Leave a Reply