Liste des connectés
9 messages
• Page 1 sur 1
-

link182 - WRInaute occasionnel

- Messages: 474
- Inscription: 26 Juil 2005
Liste des connectés
Bonjour,
j'aurais aimé afficher la liste des connectés sur mon site (loggué via session PHP), comme par exemple sur ce forum
.
J'ai pensé à créer une table Connectés et à l'alimenter/mettre à jour à chaque changement de page.
Le problème c'est que cela multplie enormément les rêquetes sur la base (nombre de pages vues * nb connectés)
Y-a-t-il un moyen de moins solliciter la base pour connaitre les users ONline
j'aurais aimé afficher la liste des connectés sur mon site (loggué via session PHP), comme par exemple sur ce forum
J'ai pensé à créer une table Connectés et à l'alimenter/mettre à jour à chaque changement de page.
Le problème c'est que cela multplie enormément les rêquetes sur la base (nombre de pages vues * nb connectés)
Y-a-t-il un moyen de moins solliciter la base pour connaitre les users ONline
- zimounet
- WRInaute passionné

- Messages: 1796
- Inscription: 8 Nov 2004
Un champ ip, un cham timestamp, un champ pseudo, a chaque chargement on supprime tous les enregistrements quand le timestanp est plus vieux que 15 minutes (par exemple), puis tu liste le nombre d'enregistrements, voir tu affiche les pseudo des connectés!
-

link182 - WRInaute occasionnel

- Messages: 474
- Inscription: 26 Juil 2005
c'est exactement ce que j'ai fait.
Le probleme c'est que si un user charge 30 pages a chaque visite, et qu'il y en a 50 users connectés en même temps, cela fait 30*50 = 1500 requetes sur la base en peu de temps, juste pour avoir la liste des connectés.
Cela ne fait-il pas trop de requetes supplémentaire ?
Le probleme c'est que si un user charge 30 pages a chaque visite, et qu'il y en a 50 users connectés en même temps, cela fait 30*50 = 1500 requetes sur la base en peu de temps, juste pour avoir la liste des connectés.
Cela ne fait-il pas trop de requetes supplémentaire ?
- zimounet
- WRInaute passionné

- Messages: 1796
- Inscription: 8 Nov 2004
Tu peux faire un system qui limitte le nombre de fois que la requete vas etre executé pour une visite.
Genre tu dis que si le nombre de seconde est impaire, on n'execute pas la requete, sinon on l'execute, ce qui fais une chance sur deux que la requete soit executé.
Et selon l'évolution de ton site, tu modifie un peu ce paramètres, de facon a trouver le juste milieu entre précision du system, et sollicitation du serveur sql.
Mais il y a d'autres moyen: travailler avec un fichier texte par exemple, ou tu regarde a chaque fois il y a combien de temps que le "nettoyage de la table" s'est fait....
Bref jamais de pb que des solutions
Genre tu dis que si le nombre de seconde est impaire, on n'execute pas la requete, sinon on l'execute, ce qui fais une chance sur deux que la requete soit executé.
Et selon l'évolution de ton site, tu modifie un peu ce paramètres, de facon a trouver le juste milieu entre précision du system, et sollicitation du serveur sql.
Mais il y a d'autres moyen: travailler avec un fichier texte par exemple, ou tu regarde a chaque fois il y a combien de temps que le "nettoyage de la table" s'est fait....
Bref jamais de pb que des solutions
- muelsaco
- WRInaute discret

- Messages: 128
- Inscription: 19 Jan 2006
En effet zimounet à raison tu peux toujours stocker les info dans un fichier même si c'est moins pratique que la base de donnée mais en effet çà va aléger le nombre de requêtes
Sinon tu mets un petit random pour ne pas enregistrer les changements de pages à tous les coups
Sinon tu mets un petit random pour ne pas enregistrer les changements de pages à tous les coups
-

Digit - WRInaute impliqué

- Messages: 613
- Inscription: 18 Avr 2003
Travailler avec un fichier texte n'est pas forcément moins coûteux.
Vous placez 15 minutes comme laps de temps pour purger les visiteurs ?
Qu'elle est la valeur d'usage ? J'étais plutôt orienté sur une durée de 2 minutes pour obtenir une indication significative
Vous placez 15 minutes comme laps de temps pour purger les visiteurs ?
Qu'elle est la valeur d'usage ? J'étais plutôt orienté sur une durée de 2 minutes pour obtenir une indication significative
- zimounet
- WRInaute passionné

- Messages: 1796
- Inscription: 8 Nov 2004
muelsaco a écrit:Sinon tu mets un petit random pour ne pas enregistrer les changements de pages à tous les coups
Ce qui reviens a se baser sur les secondes... lol
Sinon oui:
$var = srand(1,50);
if ($var==1)
{
//opération sql
}
Ce qui te fais une chance sur 5 pour 10 visiteurs simultanés(dans la pratique, c'est peut significatif) que ta page soit executé
Mais il est certains, qu'avec cette solution, plus tu as de visiteurs, plus tu ton compteurs de visiteurs simultanés (et ton afficheur de pseudo en ligne) sera précis, mais couteux en ressources SQL. Donc je plancherais plus sur le fichier texte ou alors sur les minutes ou sur les secondes, genre si la pages est chargé lorsque les secondes sont entre 55 et 60 secondes, on fais la requetes... Et si tu as vraiment beaucoup de visiteurs en meme temps, tu peut rétrécire ce temps, genre entre 58 et 60 secondes...
Cela dit, j'ai jamais eu besoin de mettre de tel trucs en place, une petite requete sur chaque page, ce n'est pas énorme quand on compare a un CMS ou il y a plus de 10 requetes par pages en moyenne...
-

cybervince - WRInaute impliqué

- Messages: 880
- Inscription: 1 Aoû 2004
zimounet a écrit:Cela dit, j'ai jamais eu besoin de mettre de tel trucs en place, une petite requete sur chaque page, ce n'est pas énorme quand on compare a un CMS ou il y a plus de 10 requetes par pages en moyenne...
C'est effectivement ce que j'allais dire.
A moins de vouloir l'afficher sur des pages qui en temps normal ne se connectent pas à la base, faire une petite requête d'update et une requête de selection, ca ne prend pas beaucoup de temps.
-

link182 - WRInaute occasionnel

- Messages: 474
- Inscription: 26 Juil 2005
Dans le cas ou il faut mettre à jour tout lse 2 minutes :
j'enregistre dans une variable de session le timestamp actuel à la connexion, et je teste cette variable à chaque page appelée.
si seulement time() > ($_SESSION['time'] + 120)
alors je met à jour ma table, et je reaffecte le timestamp actuel à $_SESSION['time']
j'enregistre dans une variable de session le timestamp actuel à la connexion, et je teste cette variable à chaque page appelée.
si seulement time() > ($_SESSION['time'] + 120)
alors je met à jour ma table, et je reaffecte le timestamp actuel à $_SESSION['time']
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Liste des utilisateurs connectés
- Connectés et déconnectés
- Nombre de connectés
- [Script PHP] connectés
- Beacoup de connectés->quel hébergeur?
- Trop de connectés en même temps
- Comment connaître le nombre de connectés au chat ?
- 100 slurps connectés en permanence depuis 3h
- Rubriques réservées aux utilisateurs inscrits et connectés
- 30 connectés simultanés , j'arrive pas a aller + loin
- Google Sets
- Articles sur le référencement publiés par des chercheurs
- Xooglers! Le blog des ex-Googlers
- La valse des rachats de sociétés par Google en mai/juin 2007
- Le blog officiel de Google Research
- Les requêtes avancées sur Bing
- Liste de bons annuaires
- Du nouveau dans le Centre pour Webmasters de Live Search
Consultez la description détaillée des produits ou services de Google suivants : Google Sets
- Combinaison de mots-clés
Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés. - Les sous-domaines d'un site
Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site. - Suggestions de mots-clés
Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter. - Suggestions Google Suggest
Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
