Humm, compliqué ton système dans le sens ou imagine quelqu'un se connecte à la zone mais est inactif (onglet perdu entre facebook et youtube).
Ce qu'il faudrait faire, d'après moi, à toi de me dire, c'est de "logger" la personne dans une base de données et la mettre à jour quand l'utilisateur est actif. Si l'utilisateur est inactif depuis 5min par exemple, il est enlevé de la base de données, et donc la zone est libre.
Je vois que ça perso