Bonjour,
je vais essayer d'exprimer mon problème clairement mais c'est pas gagné
contexte : je développe actuellement une petite appli Flex, pour l'instant c'est juste un squelette je teste les fonctionnalités les plus importantes avant d'exporter le tout vers l'application finale. Mon appli est un jeu qui nécessite un serveur de sockets. S'il est HS, le joueur de doit pas pouvoir se connecter. J'essaie de mettre en place le schéma suivant :
- envoi d'une méthode d'un service exécutant un batch (pour l'instant je dév) sous windows) lançant mon serveur de sockets ainsi qu'une classe TimeDispatcher (classe envoyant toutes les x secondes une requête au serveur qui redispatche l'heure serveur à tous les clients)
- si le point ci-dessus revient en ResultEvent (je passe par un remoteObject), alors le joueur peut se connecter sinon il peut pas
Dans les faits, ca semble simple et à priori ca l'est
Mon problème serait plus un problème d'algorithme, je suis preneur de toutes solutions ou conseils avisés. Pour le moment, ca marche à peu près je dirais mais 2 points me tracassent cependant :
- à chaque fois qu'un joueur arrive, il essaie de lancer le serveur de sockets via le batch. C'est moche car 99% du temps le serveur est déjà lancé et donc la requête sort en erreur puisque le port est déjà occupé. A la limite, ce n'est pas grave mais c'est moche...
- si la requête ci dessus échoue, ce n'est pas le cas pour le lancement de ma classe TimeDispatcher qui sera lancée autant de fois qu'il y aura de joueurs -> gros problème
Quelqu'un saurait il comment tester sur le réseau si un script PHP est déjà lancé ?
Solution alternative aux batchs : créer une nouvelle socket cliente avec AS3 et "pinger" mes 2 classes ?
Qu'en pensez vous ? Suis tout ouï![]()
Partager