Compter le nombre de joueurs actifs

Il est courant d’observer sur des sites et forums, un affichage du genre : « 163 visiteurs actuellement connectés ».

C’est sympa et ca permet de se sentir parfois moins seul sur un site web où l’asynchronisme est flagrant.

Le php va nous aider à réaliser cet affichage de manière très simple et avec très peu de ressources : en comptant le nombre de fichiers de sessions créés sur le serveur.

Quelques prérequis sont nécessaires pour l’utilisation de cette méthode, il faut :

  • que php sauve les sessions sous forme de fichier. A vérifier dans le phpinfo() : session.save_handler = « files ». C’est cependant la valeur par défaut
  • avoir accès en lecture à l’emplacement de stockage des fichiers de session. Ce n’est malheureusement à ma connaissance possible que sur un serveur dédié ou un virtual serveur, les hébergements de type mutualisé ne le permettant pas.
  • pouvoir lancer un fichier bash via le cron.

Ce guide s’oriente autour d’un fichier bash « countSessions.sh » qui va procéder à deux actions : compter le nombre de sessions et enregistrer cette valeur dans un fichier txt « countSessions.txt ».
Il ne sera exécuté qu’une fois par minute via un cron, les pages web n’affichant que le résultat consolidé « countSessions.txt ».

Fichier countSessions.sh

Par défaut, les sessions php sont stockées dans /tmp. si ce n’est pas le cas, adaptez countSessions.sh en fonction de votre « session.save_path »

#! /bin/sh line=`ls -1 /tmp/sess* | wc -l`  echo $line > countSessions.txt 

Finalement, dans la page où vous désirez afficher ce nombre, il suffira d’utiliser.

Simple non ?

{mos_fb_discuss:2}

Laisser un commentaire