Page 1 sur 1
Comment utiliser les websocket pour avoir des statistiques en temps réel
Posté : 20 sept. 2023, 16:25
par two3d
Je souhaite afficher le nombre de connectés sur mon site internet, j'ai un hébergement OVH avec Node.js 8, 10, 11 inclus.
J'ai aucune connaissance avec Node.js, d'après quelques tutos, les websocket s'utilisent avec Node.js.
Merci pour votre aide.
Re: Comment utiliser les websocket pour avoir des statistiques en temps réel
Posté : 20 sept. 2023, 17:03
par @rthur
Sans node.js ni websocket, tu mets simplement un appel ajax toutes les 30 secondes sur toutes tes pages avec un cookie de session pour identifier chaque visites.
Cet appel ajax se fait sur un script PHP, qui va ajouter/mettre à jour une table SQL qui contient une ligne par ID de session et le timestamp de dernière activité (càd la date et heure courante)
Ensuite quand tu veux connaitre le nombre d'utilisateurs connectés sur ton site, tu as juste à faire un SELECT sur cette table des timestamp < timestamp+30s.
Et bien sûr pour ne pas que ta table SQL explose en taille, tu fais un DELETE des sessions expirées
Re: Comment utiliser les websocket pour avoir des statistiques en temps réel
Posté : 20 sept. 2023, 17:12
par @rthur
A noter que pour alléger ton serveur si tu n'as pas besoin d'avoir une précision importante sur le nombre d'utilisateurs actifs en simultanés, l'autre approche est de ne pas faire de l'ajax mais uniquement au chargement de chaque page mettre à jour la table id de session/timestamp
Et considérer que les utilisateurs actifs sont ceux qui ont chargé au moins une page dans la dernière demi-heure.
30 minutes d'inactivité, c'est le standard, c'est par exemple ce que considère Google Analytics pour considérer une session comme inactive.
Re: Comment utiliser les websocket pour avoir des statistiques en temps réel
Posté : 20 sept. 2023, 18:10
par two3d
Je souhaite vraiment utiliser websocket pour ce TP et me faire la main car je souhaite faire autre chose avec les websocket plus tard.
Mon site est une application "one page" où l'utilisateur ne charge qu'une fois l'application puis des appels AJAX se font déjà toutes les X secondes, je souhaite oublié cette méthode et passer aux websockets pour envoyer des infos aux utilisateurs en temps réel.
Re: Comment utiliser les websocket pour avoir des statistiques en temps réel
Posté : 21 sept. 2023, 09:11
par @rthur
Du coup, si tu veux le faire en Node.JS, pas sûr que PHPfrance soit le forum le + adapté pour t'aider dans ce TP
En PHP+websocket, voici une piste :
https://c-mh.fr/posts/websockets-en-php ... n-y-parait
Re: Comment utiliser les websocket pour avoir des statistiques en temps réel
Posté : 21 sept. 2023, 09:16
par two3d
Merci pour tes réponses, je regarderai dans la journée
