2

GKSessionsで次の問題が発生します。クライアント/サーバーアプリケーションでデータを送信するときに、データの送信に大きな遅延が発生する場合があります(3〜4秒、場合によっては最大10秒)。

サーバーが遅延中にたとえば10パケットを送信した場合、それらの10パケットはクライアントで一度に受信されます。奇妙なことに、サーバーは遅延中にクライアントからパケットを受信します。

この遅延はWiFiネットワークではさらに悪化するようですが、Bluetoothネットワークでも発生します。

ゲームキットを使用しているときに、他の誰かがそのような遅延スパイクに遭遇しましたか?この問題の原因は何でしょうか?

4

1 に答える 1

3

私はgamekitとgksessionでたくさん働いてきました。一部の人々がそれを思いとどまらせても、私は常にPeer2Peerモードを使用します。私はあなたが説明するようなどんな種類の遅れも決して経験しません。

GKSendDataReliableまたはGKSendDataUnreliableで送信しますか?もう一方に切り替えてみて、何かが変わるかどうかを確認してください。GKSendDataReliableを使用している場合、送信側デバイスは、次のメッセージを送信する前に、受信側からの「受信済み」メッセージを待機します。これが問題である可能性があります。

テストデバイス上:ネットワークをフラッディングする可能性のある何かが実行されていますか?

マルチプレイヤーゲームキットベースのゲームをテストしていましたが、アクティブなデバイスが複数あると、突然一部が完全に停止し、再び動作させるためにハードリブート(完全にシャットダウンして再起動)する必要がありました。

問題が発生し続ける場合は、もっと低レベルのAPIを試してみてください:dns-sd https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/dns_discovery_api/Introduction.html

私はあなたがそれを機能させることを願っています、頑張ってください!

于 2012-02-27T13:15:21.623 に答える