考虑到社区遇到的所有错误,我想知道这个 Multipeer Connectivity 框架是否已准备好在现实世界中使用。我认为我的设置是正确的,但是我尝试过的所有其他示例项目都遇到了类似的问题。
我遇到的问题可能与 Bonjour 固有的某些问题有关,我无法弄清楚,但基本上问题如下:
MCSession
我与许多同龄人一起活跃。- 现在,如果设备处于会话中,然后强制退出,则“对等方”将无限期地保持连接。
- 我无法强制该用户退出,即使该
browser:lostPeer:
方法已为该对等方调用并且甚至不再在浏览器中显示为“附近”。 session:peer:didChangeState:
不为该对等方调用该方法。- 当强制退出的对等点返回应用程序时,它们再次被“找到”,
browser:foundPeer:withDiscoveryInfo:
但仍然存在于session.connectedPeers
NSArray 中。显然,他们仍然没有收到有关会话的任何数据或更新,也没有实际连接。 - 似乎唯一可以将原始对等点注册
MCSessionStateNotConnected
到会话的方法是将该对等点重新连接到原始会话。session:peer:didChangeState:
然后对 peerID 的新实例所在的位置进行重复调用,并且在 peerIDMCSessionStateConnected
的旧实例调用之后不久MCSessionStateNotConnected
。
示例聊天应用程序很好地演示了这个问题:https ://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html
由于似乎没有任何方法可以手动强制从会话中删除对等点,我该怎么办?我应该尝试以某种方式重建会话吗?
这个框架看起来有点乱,但我试图保留判断力!