我正在我的应用中使用iOS 7 Multipeer框架,但是我遇到了设备断开的问题。如果我在两个设备上打开应用程序:设备A和设备B,则这两个设备会自动连接到彼此。然而,几秒钟后,设备A会从设备B断开连接。即,首先连接如下:
A ---> B
A <--- B
几秒钟后:
A ---> B
A B
设备A保持连接,但设备B出现了MCSessionStateNotConnected状态。
这意味着A可以向B发送数据,但B无法回复。我尝试通过检查设备是否已连接并重新初始化连接来规避此问题,方法如下:
[browser invitePeer:peerID toSession:_session withContext:Nil timeout:10];
但是didChangeState回调函数只会使用MCSessionStateNotConnected被调用。
奇怪的是,如果我将应用程序A发送到后台,然后重新打开它,B将重新连接到它并且连接将保持。
Multipeer API(和文档)似乎有点不够详细,所以我一直认为它会正常工作。在这种情况下,我应该如何重新连接设备?