Foros del Web » Creando para Internet » Diseño web »

Usuarios online?

Estas en el tema de Usuarios online? en el foro de Diseño web en Foros del Web. Hola, estoy intentando mostrar que usuarios están online en mi sitio web. No cuántos, sino cuáles. ¿Cómo puedo saber si un usuario está conectado? ç ...
  #1 (permalink)  
Antiguo 24/10/2009, 07:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 0
Usuarios online?

Hola,

estoy intentando mostrar que usuarios están online en mi sitio web. No cuántos, sino cuáles. ¿Cómo puedo saber si un usuario está conectado? ç

He pensado en poner un campo en la BBDD que sea "estado" y que me lo indique, este campo lo modificaría cuando iniciara sesión el usuario. Lo consultaría con AJAX, pero no sé si es la mejor forma de hacerlo. ¿Y si el usuario cierra la sesión? ¿Cómo puedo cambiar el estado? Ésta es sólo una idea que se me ha ocurrido.

¿Me podéis orientar? Gracias.
  #2 (permalink)  
Antiguo 24/10/2009, 08:14
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Usuarios online?

Yo creo que es la mejor opción porque honestamente no veo otra. Pero en cuanto a lo otro, de cerrar la sesión si me parece un problema. Si el usuario deliberadamente cierra la sesión no hay problema, porque lo haría con un botón, pero si simplemente sale ahí viene la dificultad. Podrías ejecutar mediante el evento onunload una función ajax que cambie el estado del usuario. El problema está en que no se ejecutaría porque la página se cerraría. Entonces podrías hacer algo para que si se ejecute: mostrar una alerta, algo así como. "Si cierra la página se cerrará su sesión" con lo cual si se podría ejecutar todo el código y si se podría cerrar su sesión y cambiar su estado. Como sería esto?

if (ajax.readyState == 4) {
alert('Si cierra esta página se cerrará su sesión');
}

Creo que tú me entiendes. Sé que no es elegante, pero que yo sepa es la única manera de ejecutar una función ajax mediante el evento onunload. Espero que te sirva.
  #3 (permalink)  
Antiguo 24/10/2009, 10:17
 
Fecha de Ingreso: abril-2009
Mensajes: 371
Antigüedad: 15 años
Puntos: 22
Respuesta: Usuarios online?

a ver, guardas para cada usuario el tiempo de su ultima accion (cada hit lo actualizas) y para saber quien esta online simplemente haces un query a la base de datos para pillar los usuarios que hayan estado activos en los ultimos x minutos (el timeout lo especificas tu como quieras)

y yasta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:00.