Liste des connectés

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par link182, 25 Janvier 2006.

  1. link182
    link182 WRInaute occasionnel
    Inscrit:
    26 Juillet 2005
    Messages:
    426
    J'aime reçus:
    0
    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
     
  2. zimounet
    zimounet WRInaute passionné
    Inscrit:
    8 Novembre 2004
    Messages:
    1 374
    J'aime reçus:
    0
    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!
     
  3. link182
    link182 WRInaute occasionnel
    Inscrit:
    26 Juillet 2005
    Messages:
    426
    J'aime reçus:
    0
    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 ?
     
  4. zimounet
    zimounet WRInaute passionné
    Inscrit:
    8 Novembre 2004
    Messages:
    1 374
    J'aime reçus:
    0
    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
     
  5. muelsaco
    muelsaco WRInaute discret
    Inscrit:
    19 Janvier 2006
    Messages:
    119
    J'aime reçus:
    0
    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 :)
     
  6. Digit
    Digit WRInaute occasionnel
    Inscrit:
    18 Avril 2003
    Messages:
    451
    J'aime reçus:
    3
    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
     
  7. zimounet
    zimounet WRInaute passionné
    Inscrit:
    8 Novembre 2004
    Messages:
    1 374
    J'aime reçus:
    0
    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...
     
  8. cybervince
    cybervince WRInaute impliqué
    Inscrit:
    1 Août 2004
    Messages:
    684
    J'aime reçus:
    0
    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.
     
  9. link182
    link182 WRInaute occasionnel
    Inscrit:
    26 Juillet 2005
    Messages:
    426
    J'aime reçus:
    0
    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']
     
Chargement...
Similar Threads - Liste connectés Forum Date
Liste des utilisateurs connectés Administration d'un site Web 1 Août 2005
Site non listé sur Google Débuter en référencement 19 Juin 2022
Outil de test de code HTTP en masse (sitemap ou liste d'URL) Référencement Google 19 Mai 2022
Occurrence des mots clés dans les pages listes de produits e-commerce 23 Février 2022
Suggestions de mots clés sur un liste de 15 000 mots Rédaction web et référencement 7 Décembre 2021
Récupérer URL destination liste redirection Netlinking, backlinks, liens et redirections 22 Novembre 2021
Erreur dans diagnostic Lighthouse : Registers an unload listener Débuter en référencement 29 Mai 2021
Mon projet est-il réaliste Débuter en référencement 11 Mars 2021
version universelle de addEventListener () ? Développement d'un site Web ou d'une appli mobile 12 Décembre 2020
Impact des noms de domaine blacklistés à cause d'emailing Référencement Google 18 Septembre 2020
Blackliste publicité Facebook pourquoi? Facebook 11 Mai 2020
Désindexer liste d'URL en générant un sitemap Crawl et indexation Google, sitemaps 2 Mai 2020
Liste de villes et référencement Débuter en référencement 24 Avril 2020
Equivalent boite liste indexable ? Développement d'un site Web ou d'une appli mobile 18 Avril 2020
Avis sur le liste lodge-coco.com Rédaction web et référencement 28 Mars 2020
Astuce Comment repérer les mots-clés inversés/similaires dans une liste Débuter en référencement 21 Janvier 2020
WordPress Quelle liste de Ping Wordpress pour 2019-2020 Crawl et indexation Google, sitemaps 21 Décembre 2019
Analyse d'une liste d'URL orphelines Crawl et indexation Google, sitemaps 18 Décembre 2019
WordPress Liens vers les fiches produits dans les pages de liste de produits Débuter en référencement 16 Décembre 2019
Liste des 10 meilleurs tips pour faire fuir vos visiteurs et augmenter les profits de vos concurrent Le café de WebRankInfo 19 Juillet 2019