B'soir tout le monde,
Alors voilou, j'ai un problème qui me parait assez complexe
Il faut quand même que j'expose l'environnement (pour mieux comprendre la suite).
Donc voilou, je fais parti d'une team de devs qui développe des outils pour un jeu en ligne par navigateur OGame.fr, un truc de stratégie et de guerre dans l'espace, on s'incrit dans un univers, et dans chaque univers il y a 9 galaxies de 500 syst-mes solaires chacuns.
On a notemment un outil qui permet d'avoir une cartographie de cet univers (pour ensuite faire des recherches sur un joueurs et pleins pleins d'autres choses utiles). On doit remplir la cartographie manuellement, celle-ci étant dans une BDD. L'outil s'apelle OGSpy.
Chaque "alliance" (groupe de joueurs), ou même un joueur seul peut avoir un serveur OGSpy à installer lui même sur un serveur. L'outil étant assez populaire, il a beaucoup d'OGSpy pour un même univers, ce qui peut se comprendre lorsque deux alliances sont ennemies, mais quand elles sont alliées ? Comment faire pour qu'elles partagent une même cartographie ? Oui biensûr elles pourraient aller sur le même serveur OGSpy, mais non, ça ne se fait pas, les alliances préfèrent avoir leur propre cartographie et donc leur propre OGSpy.
La solution ? La synchronisation des BDDs ; c'est là où mon problème, étant dev, commence.
Oui oui, vous vous dîtes que c'est simple, on fait un mysqldump chai pas quoi ou un export de la base avec phpMyAdmin ou un autre truc.
Bah non, ce que je veux proposer, c'est une solution simple, on appuie sur un bouton, et hop, la synchro se fait.
Ne me parlez pas non plus de réplications, il faut que ce soit compatible entre des MySQL de différente version et je le rappelle, que ce soit simple.
Là où j'ai besoin de votre aide, c'est juste pour envoyer des données sur le serveur distant, on va dire que le formatage des données est déjà fait et que tout est déjà prêt de l'autre côté pour accueillir les données et les rentrer soignesement dans la BDD en vérifiant la date etc.
J'ai tout d'abord pensé à l'AJAX, mais j'ai appris juste avant de coder qu'il était pour l'instant (Firefox 3) impossible d'envoyer une requête distante car le navigateur va la bloquer pour des raisons de sécurité.
Je me suis dis : "Ah bah pas grave, je passe par FTP !".
Wi mais non, ceux qui gèrent leur serveurs OGSpy vont pas filer à l'autre (même si c'est un copain et un allié) ses identifiants FTP comme ça
Ensuite ? Bah j'ai pensé au sockets, oui mais non encore une fois peu d'hébergeur active socket_open
Pourquoi pas la lib PHP curl ? pour la même raison.
Ensuite, je me suis réorienté vers l'AJAX et différents moyens d'obtenir une requête "cross-domain".
J'en ai trouvé quelques-une :
Désactiver la fonction qui empêche les requêtes multi-domainiale dans le navigateur (mouais, pas très sécurité ça)
Puis j'ai trouvé, ça : http://blog.monstuff.com/FlashXMLHttpRequest
Mais ça ne marche pas (chez moi en tout cas) ; si vous y arriver dite le moi ^^ la démo est ici --> http://blog.monstuff.com/FlashXMLHttpRequest/demo/
OU encore JSON, mais ça me semble un peu compliqué, si vous pensez que c'est la solution, dîtes le moi
Et enfin, ce truc : http://www.ajax-cross-domain.com/
Mais ça ne me semble pas bien transparent.
Si vous avez une idée pour résoudre mon problème
Merci d'avance.
---------------
Be Free, Be Linux, Be Penguin !