相关疑难解决方法(0)

为什么我的MCSession对等端会随机断开连接?

我使用MCNearbyServiceBrowser和MCNearbyServiceAdvertiser将两个对等体连接到MCSession.我可以使用MCSession的sendData方法在它们之间发送数据.所有似乎都按预期工作,直到我随机(并且不是由于我控制的任何事件)通过会话的MCSessionDelegate didChangeState处理程序接收MCSessionStateNotConnected.此外,MCSession的connectedPeers数组不再拥有我的同行.

两个问题:为什么?以及如何防止MCSession断开连接?

objective-c ios7 multipeer-connectivity

40
推荐指数
3
解决办法
1万
查看次数

多重连接框架 - 丢失的对等体停留在会话中

我想知道这个Multipeer Connectivity框架是否可以在现实世界中使用,考虑到社区遇到的所有错误.我认为我的设置正确,但我尝试过的所有其他示例项目都遇到了类似的问题.

我遇到的问题可能与Bonjour固有的某些问题有关,我无法弄清楚,但基本上问题如下:

  • MCSession和很多同行都很活跃.
  • 现在,如果设备在会话中,然后强制退出,则"Peer"将无限期地保持连接状态.
  • 即使browser:lostPeer:为该对等方调用该方法并且不再在浏览器中显示为"附近" ,我也无法强制该用户离开.
  • session:peer:didChangeState:不为该对等方调用该方法.
  • 当强制退出的同伴回到应用程序时,它们再次被"发现",browser:foundPeer:withDiscoveryInfo:但仍然存在于session.connectedPeersNSArray中.显然,他们仍然没有收到有关会话的任何数据或更新,实际上并没有连接.
  • 似乎唯一能够将原始对等体注册MCSessionStateNotConnected到会话的方法是将该对等体重新连接到原始会话.然后session:peer:didChangeState:对peerID的新实例所在的位置进行重复调用,并且在peerID MCSessionStateConnected的旧实例调用之后不久MCSessionStateNotConnected.

示例聊天应用程序很好地演示了这个问题:https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html

由于似乎没有任何方法可以手动强制从会话中删除对等体,我该怎么办?我应该尝试以某种方式重建会话吗?

这个框架看起来有点混乱,但我试图保留判断力!

session ios multipeer-connectivity

13
推荐指数
1
解决办法
8805
查看次数

标签 统计

multipeer-connectivity ×2

ios ×1

ios7 ×1

objective-c ×1

session ×1