11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Est-il possible de connaitre grâce à des pseudos en SESSION si les utilisateurs sont connecté à une page (Par exemple, une salle de chat..) et que quand il ferme son navigateur, la fenêtre ou se déconnecte, il disparaisse de la liste des connectés ?

Seriez-vous si cela est possible ?

Merci d'avance !
le protocole HTTP ne permet pas de connexion persistente client/serveur, donc faire exactement ce dont tu as besoin n'est pas possible directement.

Mais comme on est sur le web, il y a plusieurs workarounds :
- polling : en JS tu fait une requête XHR (ajax) (si tu as besoin de récupérer des données du chat) toutes les quelques secondes. Si c'est juste pour signaler ta présence, tu peux te contenter d'envoyer une requete HEAD régulièrement (c'est comme XHR mais le client n'attend pas de réponse)
- autre techno : Flash ou java. Jamais essayé le 2nd mais tu peux utiliser un proxy flash qui lui est capable d'établir une connexion permanente (socket) avec ton serveur et donc de prévenir en temps réel serveur et client de ce qu'il se passe. Mais ce n'est plus du HTTP, donc il faut configurer son serveur spécialement pour ça

Pour la déconnexion, il existe l'event window.onbeforeunload auquel tu peux te rattacher pour envoyer une dernière XHR au serveur pour lui dire que le client va quitter la page. Je ne suis pas certain que ça marche dans tous les cas mais ça se teste Smiley smile