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

Iphone 使用蓝牙时,同一设备上是否可能有两个GKSession实例?,iphone,client,gksession,Iphone,Client,Gksession,我正在写mutliplayer游戏,我想我会创建两个GKSession实例。一个会话设置为GKSessionModeServer,另一个会话设置为GKSessionModeClient。当我在客户机对等机上调用peersWithConnectionState:时,会正确报告服务器,并且每个会话都有不同的对等机ID。但当我尝试连接到服务器时,我收到消息session:connectionWithPeerFailed:withError:,错误描述为“挂起传出邀请时失败” 当Wi-Fi可用时,使用两

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

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


如果我同时关闭Wi-Fi和Bluetooth,则会出现“网络不可用”的错误。如果两者都打开,则不会出现该错误。这让我相信,当附近还有另一台iPhone时,它也不会工作。

我重写了代码,因此我只在托管设备上创建一个GKSession,并直接在服务器和本地客户端之间发送数据,而不使用GKSession。我终于可以用两个设备测试这个问题,并且它们可以正确地相互连接。因此,教训是在主机上只有一个会话,它将与蓝牙和Wi-Fi一起工作