[DUDA] ¿Quien esta conectado a mi web? PHP/MySQL

ciberares

Buenas, estoy creando una pagina web a modo de red social, con PHP y sessiones, tengo implementado ya el sistema de registro y logueo. Pero me gustaría saber como podría ver que usuarios están conectados a mi web. Mi duda surge, en no saber si crear una tabla nueva donde recoger la id y el tiempo de session, y esta a la vez se actualice conforme vas navegando por el portal. Y si superas determinado tiempo, aparte de cerrar la session, mostrar al usuario como desconectado.

Siento si me explicado como el culo, tengo un cacao en la cabeza increíble. Cualquier aporte o enlace a algún tutorial seria de agradecer. Hasta ahora solo he encontrado ver la cantidad de usuarios conectados. No se si me servirá.

1
RaymaN

Para algo así podrías usar redis y ahorrarte el acceso a mysql.

1 2 respuestas
B

#1 Básicamente lo que comenta #2 lo he hecho en anteriores ocasiones para una red social de contactos. Guardas la id de usuario en redis con un expire y te ahorras accesos a la base de datos. Date cuenta que es un dato que vas a estar constantemente leyendo/actualizando y redis al estar cacheado en memoria no sobrecargará la arquitectura.

Un enlace random para que te hagas una idea de como va la cosa.

https://github.com/JustinCarmony/Fun-With-Redis/blob/master/misc/online_example.php

1 respuesta
RaCe

así a lo tonto, podrias crear una tabla en MySQL de que usuario esta online y la hora d ultima conexión,
y con PHP cada vez que te visiten, actualizas esa tabla:

  • guardar nuevo usuario o actualizar la hora de ultima conexión
  • eliminar usuarios viejos (si ult.conexión hace más de x minutos -> al hoyo)

y si quieres complicarte la vida para verlo en "tiempo real" necesitarías ajax o algo así y hacer polling

1 respuesta
ciberares

Me parece muy interesante lo que habeis dicho #2 y #3 , y he estado mirando el codigo, y sobre redis. Me parece una muy buena opcion que estar saturando la base de datos con peticiones todo el rato. La cuestion es que donde tengo pensado alojar la web no permiten la instalacion de redis.

Can I run redis with shared hosting plans?
Unfortunately, You will not be able to run Redis here because it is not possible to compile code on our servers. To achieve this you would have to purchase one of our offered VPS packages.

Si os preguntais donde, es hostinger. A si que seguramente no me quede mas opcion que la que habia pensado de antemano y ha puesto tambien #4 .

3 respuestas
B

#5 Si es para una prueba de concepto bien pero si es para algo que vas a tener online lo que comentas no es opción, el cuello de botella que vas a tener si tienes muchos usuarios online va a ser de escándalo.

1
RaymaN

#5 si la web la estás haciendo para aprender y quieres seguir en este mundo, pasa de hostinger y pilla el vps más básico de ovh que son 3€ al mes.

4 2 respuestas
8 días después
willy_chaos

#7 #5 Arubacloud.es tiene el de 1€, yo tengo mi blog ahi y va bastante bien

27 días después
HelThunk

Recomiendo lo mismo que #7 , nada como un vps con el que poder jugar y probar tus cosas. Verás como al final terminas con varios.

Usuarios habituales