GKPeerStateAvailable 是不是适用于不存在的对等点?
Posted
技术标签:
【中文标题】GKPeerStateAvailable 是不是适用于不存在的对等点?【英文标题】:GKPeerStateAvailable for non existing peers?GKPeerStateAvailable 是否适用于不存在的对等点? 【发布时间】:2010-01-07 01:16:39 【问题描述】:长期使用这个网站寻找答案,现在需要问自己! :)
我使用 GKSession 和客户端/服务器方法为我的游戏实现了多人游戏,而不是使用对等选择器(最多允许 4 个玩家)。
我有一个大问题我找不到解决办法。
如果您足够快地断开/重新连接服务器对等方,客户端对等方将“记住”该主机并将其永久显示在所有可用对等方的列表中,只有关闭 wifi/蓝牙才会重置。
所以如果我连续 5 次这样做,我的客户端将显示 5 个可用的同名主机!
有人有这方面的经验吗?任何解决方法的想法?
我应该注意,我的游戏需要 iPhone SDK 3.0 蓝牙和 3.1 Wifi,因为 GKSession 现在支持两者。
【问题讨论】:
【参考方案1】:我也有类似的问题。事实上,我什至会列出目前甚至没有玩游戏的同伴。更重要的是,列出了不充当服务器的对等方。我想知道是否有一些幕后缓存正在进行。
我正在考虑实施某种带有视觉反馈的计时器来显示断开连接的进度,理想情况下是为了防止这种情况。一般而言,连接/可用和断开/不可用似乎存在一些时间延迟。对接口进行编码以考虑这些时间延迟可能会更好,尽管我不确定具体如何。
【讨论】:
一种解决方案是不使用服务器/客户端模式,而是使用对等模式,仍然可以充当服务器/客户端。在这种情况下,不存在对等点的缓存问题。我修复它的方式是,当我加载可用服务器列表时,如果再次出现相同的名称,我会替换列表中的现有服务器。我发现同一个同伴的姓总是“正确的”。当然,如果主机不可用,它并不能解决问题,但仍然可用。除非您使用对等模式,否则恐怕无法解决此问题。以上是关于GKPeerStateAvailable 是不是适用于不存在的对等点?的主要内容,如果未能解决你的问题,请参考以下文章