(06-03-2012, 10:19 PM)niahoo a écrit :Non, justement, je ne veux pas attendre! je veux juste empêcher qu'il y en ait plusieurs, c'est pas pareil.(06-03-2012, 08:30 PM)Sephi-Chan a écrit : Même sans PHP, dès lors que tu n'effectues pas le job dans la requête HTTP, tu ne peux pas renvoyer les informations utiles dans la réponse (à moins d'attendre l'exécution du job, mais on perd l'une des forces de l'asynchrone).
Et bien justement, Argorate veut attendre l'exécution du job. C'est mois sympa a mon sens aussi mais ça pourrait se justifier dans certains cas, pourquoi pas, et ça reste possible.
(06-03-2012, 10:19 PM)niahoo a écrit : @Ter Rowan : je pense que c'est coûteux parce que dans l'exemple d'atra tu as 15 joueurs qui attendent que 1 requête efectue ses actions. En gros, ton serveur web ne peut répondre qu'à une requête en même temps. Voilà pourquoi il doit être mégaGigaPuissant.Bon, donc là j'ai enfin compris pourquoi tu ne comprenais pas, c'est que tu n'as pas saisie la manœuvre mise en place je pense ^^
Je ne lock pas mon serveur !
je lock une page ET pour 1 joueur qui a déjà une requête sur cette page en cours d'exe
ce qui ce passe c'est que:
si j'ai 15 joueurs, les 15 lancent leurs attaques, il n'y aura absolument aucun problème, elles se feront toutes et dans l'ordre où elles sont demandé.
Le cas qui pose problème pour moi, c'est quand le même mec demande deux fois en même temps - ou presque - la page d'attaque: c'est la que mon lock manuel intervient:
En gros, j'ai rajouter en haut de ma page d'attaque :
if(!$current_joueur->attack_lock)
{
$current_joueur->attack_lock=true;
//... faire l'attaque...
$current_joueur->attack_lock = false;
}
ce qui fait que lors de la deuxième requête du même gars sera bloqué, mais absolument pas celle des 14 autres joueurs, ni même la première attaque lancer par le joueur!! Tu comprends?Donc là où tu dis : "En gros, ton serveur web ne peut répondre qu'à une requête en même temps.", c'est plutôt : "ton serveur web ne peut répondre qu'à une requête en même temps sur la page d'attaque, pour UN joueur donnée.", ce qui n'est pas du tout pareil, tu me le concèdera.
Ter Rowan : outre le fait que la solution de sephi fait créer une table juste pour ça (et qui en plus demande donc une requête supplémentaire à chaque attaque, alors que si c'est un champs dans tes joueurs, tu l'as chope en même temps que ton objet), en mon cas ça ne peut pas marcher, car les attaques se font par rapport aux coordonnées et pas par rapport au id des joueurs, c'est spécifique a mon jeu a cause de l'histoire de camouflage (faudrait que tu reviennes jouer pour comprendre ^^)
Dévotion, jeu multijoueur gratuit par navigateur de stratégie et de conquête
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)
The Magic Institute, le jeu de magie médieval fantastique gratuit en ligne
Rapture Studio : créateur de divertissement pour tous
JePolitique.fr - débattons ensemble
JécrisLaConstitution.fr - ne laissons pas les Hommes aux pouvoirs écrire les règles du pouvoir
Je Deviens Citoyen (Association à but non lucratif)