2011-12-15 4 views
2

私はGKSessionsに次のような問題があります。 クライアント/サーバーアプリケーションでデータを送信するときに3〜4秒(時には10秒まで)なることがあります。Gamekit Latency

遅延中にサーバが10パケットを送信する場合、これらの10パケットはクライアント上で一度に受信されます。奇妙なことは、遅延中にサーバーが依然としてクライアントからパケットを受信して​​いることです。

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

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

答えて

3

私はゲームキットとgksessionで多くのことをしてきました。私はいつもPeer2Peerモードを使用しています。私はあなたが描いたようなどんな種類の遅延も経験しません。

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

テストデバイス上:ネットワークに溢れている可能性のあるものはありますか?

私はマルチプレイヤーゲームキットをベースにしたゲームをテストしていましたが、アクティブなデバイスがいくつかあった場合、突然一部が完全に停止してしまい、再起動するために再起動(完全にシャットダウンして再起動)する必要がありました。あなたがトラブルに得続ける場合

あなたははるかに低レベルAPIをしようとする場合があります:DNS-SD https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/dns_discovery_api/Introduction.html

私は、あなたがそれを動作させる幸運を願っています!

+0

待ち時間を表示する方法はありますか? – zeiteisen

+0

@zeiteisenいいえ:自分で書く必要があります。タイムスタンプ付きのpingメッセージを送信し、他方の側では対応するpingのタイムスタンプを含むpongメッセージで応答します。私の経験では、信頼性の高いメッセージと信頼性の低いメッセージの待ち時間は異なる場合があります。 –

関連する問題