2010-06-22 5 views

Répondre

1

Lorsque vous créez votre GKSession, définissez son dataReceiveHandler comme ceci:

[self.gkSession setDataReceiveHandler:self withContext:nil]; 

Le gestionnaire est une méthode avec la signature suivante (dans ce cas, ce serait dans le « auto "objet référencé ci-dessus);

- (void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context; 

Cette méthode est appelée lorsqu'un pair reçoit des données envoient par sendData:toPeers et sendDataToAllPeers:

+2

Je pense que l'OP est intéressé à savoir quand le dispositif émetteur est fait avec l'envoi des données. (J'aimerais beaucoup le savoir moi-même). Le 'dataReceiveHandler' que vous suggérez est appelé sur le périphérique récepteur, en supposant que les données ont été envoyées par l'expéditeur et n'ont pas été perdues en cours de route. – Spiros

+0

Le périphérique qui envoie des données X ne reçoit pas de -receiveData: fromPeer: inSession: avec des données X. Un nom de méthode plus approprié serait sendDataToAllOtherPeers: withDataMode: error: qui pourrait être moins confus. – openfrog

0

Lorsque vous

[session sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil]; 

il retournera « Oui » si les données ont été mis en attente pour la transmission et " Non "s'il n'a pas été mis en file d'attente correctement. Si vous avez spécifié quelque chose pour le paramètre "error", le problème sera enregistré ici.

En ce qui concerne la confirmation du message effectivement reçu par le destinataire, je ne trouve rien dans la documentation (à moins que le destinataire n'envoie un message confirmant la réception). Si vous utilisez GKSendDataReliable comme mode, il tentera d'envoyer le message autant de fois que possible jusqu'à ce que la connexion expire. Il semblerait que votre meilleure option serait d'utiliser un mode fiable, vérifiez s'il a été mis en file d'attente correctement, et si vous avez besoin de réagir une fois le message reçu, envoyez une confirmation.

Questions connexes