Hallo, ich bin ein neuer Bie im Game Center für iOS. Ich versuche, die Multiplayer-Funktion mit Übereinstimmungen zu meinem Spiel hinzuzufügen und der Dokumentation zu folgen.Game Center Multiplayer mit GKMatch, aber scheint nicht verbunden werden
Bisher habe ich einen Punkt erreicht, wo 2 meiner Clients erfolgreich eine Übereinstimmung erhalten können, d. H. Der matchmakerViewController: didFindMatch-Callback wird aufgerufen und ein GKMatch-Objekt wird geliefert.
Aber danach scheint ich dort für immer festgefahren zu sein, weil ich gemäß der Dokumentation warten muss, bis alle Spieler (2 in meinem Fall) tatsächlich verbunden sind, bevor ich mein Spiel starte. Aber es scheint die Übereinstimmung: player: didChangeState Callback wird nie aufgerufen, um eine erfolgreiche Verbindung anzuzeigen. Nun, ich bin mir sicher, dass meine Kunden alle im gleichen WLAN-Netzwerk sind (oder ist es ein Muss?) Könnte mich jemand in diesem Fall aufklären? Muss ich irgendwelche zusätzlichen Dinge tun, um die Clients zu verbinden? Vielen Dank für die Hilfe!
Einige Updates zu dem Problem, ich habe schließlich eine Wireshark Erfassung aller Verkehr, und ich fand gerade heraus, dass Game Center STUN verwendet, um Router/NAT/Firewalls zu überwinden, und indem Sie einen Blick auf den RFC, es sagt "STUN funktioniert nicht, wenn es verwendet wird, um eine Adresse zu erhalten, um mit einem Peer zu kommunizieren, der zufällig hinter demselben NAT ist." OK, ich denke, das könnte die Wurzel meines Problems sein, zwei meiner Kunden sind beide in das private Netzwerk (192.168.2.x) eines WLAN-Routers. Aber ich bin nicht sicher, was der beste Weg ist, dies zu überwinden, wenn ich die Tests mache .... irgendwelche Ideen? –
Ich habe das gleiche Problem wie Sie, aber ich glaube nicht, dass diese STUN-Frage, die Sie oben erwähnt haben, das Problem ist, da ich meine Tests mit Geräten durchführe, die an zwei verschiedene NAT-Netzwerke angeschlossen sind. – thomdask