Prevenir une nouvelle application
J'ai une applet java qui implemente un chat vocal (via jiax); je voudrais empecher l'utilisateur de lancer une autre instance de l'applet dans une autre page web en naviguant à l'adresse de l'application. J'ai pensé à refuser au niveau serveur les nouvelles connexions provenant d'IPs deja enregistrés, mais les clients connectés derriere un routeur ne peuvent établir de multiples connexions. Est il possible de verifier au niveau client si l'applet roule deja?
Merci,
Optimisation de l'idée précédente.
Pour ne pas prendre le risque de s'exposer à un timeout long et agaçant, il suffit de créer un serversocket sur un port précis. Si ce dernier est disponible, c'est que l'applet est jouée pour la première fois, sinon, et bien il ne l'est pas. En jonglant avec les levées d'exception, cela devient instantanné de savoir si l'applet s'exécute déjà ou pas. Mais on ne peut jamais savoir si le port que l'on va utilisé n'est pas déjà monopolysé par un autre programme, auquel cas, l'applet ne demarrerai jamais.
Mais comme dit, c'est une idée. Sinon, pour faire simple, on imite sans se compliquer la vie la technique des cookie en créant un fichier texte quelconque localement, que l'on supprime en quittant. Il suffirait donc de vérifier la présence de ce fichier pour découvrir l'existance d'une instance de l'applet. La, c'est plus simple si on nomme le fichier d'une manière unique.