使用蓝牙时,是否可以在同一设备上有两个GKSession实例?

时间:2011-10-07 03:26:52

标签: iphone client gksession

我正在编写mutliplayer游戏,并认为我会创建两个GKSession实例。一个会话设置为GKSessionModeServer,另一个设置为GKSessionModeClient。当我在客户端对等体上调用peersWithConnectionState时,正确报告服务器,并且每个会话具有不同的对等ID。但是,当我尝试连接到服务器时,我收到消息会话:connectionWithPeerFailed:withError:错误描述“挂起传出邀请时失败。”。

当Wi-Fi可用时,使用两个GKSession。我担心蓝牙有一些限制,不允许这样,但我不确定。我可以重写代码以在服务器上使用单个GKSession,但如果我知道其他人让它使用两个实例,我宁愿不编写特殊情况。

如果我关闭Wi-Fi和蓝牙,我会收到错误“网络不可用”。如果任何一个打开,我都没有得到。这让我相信当附近还有另一部iPhone时,它将无法运作。

1 个答案:

答案 0 :(得分:2)

我重写了代码,所以我只在托管设备上创建一个GKSession,并在不使用GKSession的情况下直接在服务器和本地客户端之间发送数据。我终于可以使用两个设备对它进行测试,并且它们可以正确地相互连接。所以我们的教训是在主机上只有一个GKSession,它可以用于蓝牙和Wi-Fi。