Foro

saber si usuario se desconectó

0
hola, he estado pensando como resolver el sigte problema: cuando un usuario de mi sistema ingresa se activa una bandera en la BD que me sirve para mostrarle a los otros usuarios del sistema que está conectado. si sale del sistema haciendo logout esa bandera cambia y hasta ahi ningun problema, pero cuando el sistema se cierra de forma abrupta ya sea porque se apago el pc sin salir normalmente, o el usuario simplemente cerró la pagina desde la X, el sistema aun cree que está conectado. me he planteado varias formas de hacer esto pero me gustaria saber si alguien lo ha resuelto o sabe de alguna forma mas eficiente. mis ideas son las sigtes: con un taskrunner enviar cada cierto tiempo una bandera indicando estado y hora actual, desde otro archivo, mediante cron jobs, cambiar el estado a desconectado de tal forma que el taskrunner original lo vuelva a poner en 'conectado' , un poco rebuscado no? probar a hacer algo con las variables de session, pero imagino que las variables se mantienen aunque el usuario cierre la ventana. alguna idea mas practica? la verdad es que todas las ideas me parecen algo rebuscadas en este momento y googleando no he encontrado nada aun.
0
mmmmmmmmm.... lo que yo haría sería setear una hora de cuanto tiempo le doy de "timeout" o "inactividad" al usuario para mostrarlo como desconectado, por ejemplo, si en 5 minutos no has reciido actividad de parte del usuario pues automáticamente se dejaría de mostrar como "activo", siendo un poco más técnico, en lugar de tener una bandera en la base de datos que se llama "conectado=true" tendría un campo en la DB que se llamara "timeout=2009-09-13 16:04:06" y para desplegar a los usuarios activos desplegaría aquellos cuyo "timeout" sea mayor al de la hora actual y cada que el usuario intereactúe con el servidor setear ese campo nuevamente con la nueva hora. saludos <!-- s:D --><!-- s:D -->

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.