我对GKSessions有以下问题: 有时在客户端/服务器应用程序中发送数据(3-4秒,有时长达10秒)会有很大的延迟。
如果服务器在延迟期间发送10个数据包,则在客户端上一次性接收这10个数据包。奇怪的是服务器在延迟期间仍然从客户端接收数据包。
这种延迟似乎在WiFi网络中更糟糕,但也发生在蓝牙网络中。
使用gamekit时是否有其他人遇到此类延迟峰值? 可能是这个问题的根源是什么?
答案 0 :(得分:3)
我一直在使用gamekit和gksession工作。我总是使用Peer2Peer模式,即使有些人不鼓励它。我从来没有像你描述的那样经历任何延迟。
您是使用GKSendDataReliable还是GKSendDataUnreliable发送的?尝试切换到另一个,看看它是否有任何改变。如果您正在使用GKSendDataReliable,则发送设备将在发送下一条消息之前等待来自接收方的“已接收”消息。这可能是问题所在。
在你的测试设备上:运行的任何东西是否会泛滥网络?
我正在测试基于多人游戏套件的游戏,如果我有几个活动设备,那么突然有些会完全停止,我需要重新启动(完全关闭并重新启动)它们以使它们再次工作。
如果你遇到麻烦,你可能想尝试更低级别的api:dns-sd https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/dns_discovery_api/Introduction.html
我希望你能让它成功,祝你好运!