connection d'iPhone a iPhone

yodarkyodark Membre
février 2009 modifié dans API UIKit #1
Bonjour à  tous,

J'ai une petite question ou intérogation. Je compte faire un jeu en ligne se jouant d'iPhone a iPhone. Actuellement mon jeu est traité par un serveur PHP.
Les variables du jeu sont stockées sur le serveur dans une base MySQL. Donc toutes les 3 secondes l'iPhone se connecte au serveur pour lui demander si le joueur adversaire à  joué son tour. Ma question est :

Peut on imaginer un socket de connexion d'iPhone a iPhone pour je pas a devoir se connecter toutes les X secondes au serveur ? Si oui avec quelles classes, si non quels sont les solutions ? Ce modèle de 3 secondes est il viable pour un jeu très joué (batterie ? surcharge serveur ?)

(les réponses du serveur son légères 0 ou 1 si le joueur a joué et quelques données XML pour décrire ce que le joueur a fait)

Réponses

  • GreensourceGreensource Membre
    13:12 modifié #2
    Je ne m'y connais pas très bien sur le sujet, mais n'aurais tu pas intérêt à  utiliser CoreData pour les données et une connexion Wifi entre les deux iPhones?
  • CeetixCeetix Membre
    13:12 modifié #3
    Si il faut beaucoup de réactivité 3 secondes riquent devenir plutot 20 secondes (imaginons que la connexion lag à  mort ...) . Ensuite si ton jeu devient très répendu j'imagine même pas le nombre de requetes ^^. Ca vau chauffer dur .
    Après, je ne sais pas du tout si c'est possible , de connecté deux iphone l'un à  l'autre pour ce type de service. A voir avec les autres donc :)
  • AliGatorAliGator Membre, Modérateur
    13:12 modifié #4
    Très bonne question jamais essayé... Mais après tout, un iPhone, du moins quand il est en Wifi, a une IP (je sais pas comment ça marche pour la 3G mais j'imagine que c'est le cas aussi évidemment ;)).
    Donc après je vois pas pourquoi ça ne marcherait pas de créer un socket entre les 2 IP et donc les 2 iPhones... à  part qu'il faut qu'ils soient sur le même sous-réseau !
    S'ils ne sont pas sur le même réseau, tu vas avoir des soucis, genre obligation d'ouvrir le port utilisé par ton jeu pour cette communication, sur le routeur du réseau sur lequel est l'iPhone (le routeur de ta maison si tu utilises le Wifi de chez toi par exemple)... Pas terrible pou rendre ton jeu attrayant s'il faut que l'utilisateur bidouille ça.

    Autre solution, c'est que chaque iPhone se connecte à  ton serveur en créant une connexion persistante, et qu'ainsi chacun puisse passer à  travers le routeur (car c'est l'iPhone qui envoie la requête sortante) vers le serveur donc pas de soucis de ce côté), et ensuite ton serveur sert à  dispatcher les messages quand ils arrivent. Du coup pas besoin d'avoir une connexion toutes les 3 secondes, par contre besoin d'une connexion persistente, ce qui n'est p'tet pas bcp mieux.

    Je pensais aussi à  une autre alternative, c'est d'utiliser un protocole tout fait comme XMPP pour la communication de tes données (c'est le protocole utilisé par Jabber et GTalk entre autres, donc orienté messagerie instantanée mais dérivable pour d'autres usages d'envoi de "messages"). Et/ou d'utiliser le principe du protocole SIP pour mettre en relation tes 2 iPhones, chaque iPhone jouant le rôle d'un UserAgent SIP et ton serveur de jeu servant de "registrar" qui va enregistrer les adresses IP de chaque iPhone inscrit. A creuser...
Connectez-vous ou Inscrivez-vous pour répondre.