19-05-2009, 11:15 PM
J'ai eu le même problème, et j'ai choisi la solution des sockets, que j'ai plus le temps de développer d'ailleurs...
Pour mettre ça en place, il te faut développer un serveur, en PHP ou ce que tu veux, et un client, que tu fais en Flash, (ou peut-être sous forme d'applet Java). En Javascript ce n'est pas possible, ça gère pas les sockets.
En fait si tu passes par les sockets, y a plus de POST ni de GET, tu implémentes ton propre langage client / serveur. Les joueurs se connectent à ton serveur, s'identifient, et dialoguent avec lui avec un langage que tu as toi-même défini. Tu peux faire transmettre tes données via XML, en Json, ou sous la forme talkToNpc(3)... Tu es liiibre ! ^^
Mais pour pouvoir utiliser cette solution, il faudra que le serveur tourne sans relâche, ce qui implique un accès shell sur ton hébergement donc a priori une solution dédiée. Y a d'autres contraintes, liées à la performance et à la sécurité qui sont pète burnes à prendre en compte. Je sais pas si c'est une bonne solution, je ne connais pas de jeu qui tourne comme ça.
Y a aussi une 3ème méthode, qui est un compromis entre le refresh ajax et les sockets : le long polling, ou encore reverse ajax, ou encore comet, qui consiste à faire établir une connexion continue entre le serveur et le client en laissant tourner une requête Ajax en fond, jusqu'à ce qu'il se passe quelque chose et que le serveur renvoie une réponse au client. Si rien n'arrive et que la requête Ajax timeout, zou elle repart direct. C'est le système utilisé par facebook pour leur chat instantané. Mais ça implique aussi une configuration pointue de son serveur.
Pour mettre ça en place, il te faut développer un serveur, en PHP ou ce que tu veux, et un client, que tu fais en Flash, (ou peut-être sous forme d'applet Java). En Javascript ce n'est pas possible, ça gère pas les sockets.
En fait si tu passes par les sockets, y a plus de POST ni de GET, tu implémentes ton propre langage client / serveur. Les joueurs se connectent à ton serveur, s'identifient, et dialoguent avec lui avec un langage que tu as toi-même défini. Tu peux faire transmettre tes données via XML, en Json, ou sous la forme talkToNpc(3)... Tu es liiibre ! ^^
Mais pour pouvoir utiliser cette solution, il faudra que le serveur tourne sans relâche, ce qui implique un accès shell sur ton hébergement donc a priori une solution dédiée. Y a d'autres contraintes, liées à la performance et à la sécurité qui sont pète burnes à prendre en compte. Je sais pas si c'est une bonne solution, je ne connais pas de jeu qui tourne comme ça.
Y a aussi une 3ème méthode, qui est un compromis entre le refresh ajax et les sockets : le long polling, ou encore reverse ajax, ou encore comet, qui consiste à faire établir une connexion continue entre le serveur et le client en laissant tourner une requête Ajax en fond, jusqu'à ce qu'il se passe quelque chose et que le serveur renvoie une réponse au client. Si rien n'arrive et que la requête Ajax timeout, zou elle repart direct. C'est le système utilisé par facebook pour leur chat instantané. Mais ça implique aussi une configuration pointue de son serveur.